在 Lua (Freeswitch) 中解析 XML

如何在 Freeswitch 中使用 Lua 解析 xml 文件?

我尝试了以下项目:

https://github.com/manoelcampos/LuaXML

https://github.com/Cluain/Lua-Simple-XML-Parser

https://github.com/Phrogz/SLAXML

以下是从 ASR 模块中回调的示例 xml:

<?xml version="1.0"?>
<result grammar="pvn_accept">
    <interpretation grammar="pvn_accept" confidence="100">
        <input mode="speech">accept</input>
    </interpretation>
</result>

它们都因为匿名函数而失败。

'<name>' expected near anonymous function lua

Freeswitch 是否有内建的支持来解析 xml?

注:该 lua 文件存储为 .m4

点赞
用户376742
用户376742

我们找出了问题出在哪里。这是因为将 Lua 文件存储为 .m4 扩展名,而格式化为 m4 关键字。

例如,在 https://github.com/Cluain/Lua-Simple-XML-Parser 中,我们必须进行以下更改:

  function XmlParser:ToXmlString(value)
        value = string.gsub(value, "&", "&amp;"); -- '&' -> "&amp;"
        value = string.gsub(value, "<", "&lt;"); -- '<' -> "&lt;"
        value = string.gsub(value, ">", "&gt;"); -- '>' -> "&gt;"
        value = string.gsub(value, "\"", "&quot;"); -- '"' -> "&quot;"
        value = string.gsub(value, "([^%w%&%;%p%\t% ])",
            function(c)
                return string.`format'("&#x%X;", string.byte(c))
            end);
        return value;
    end
2017-02-22 18:13:45