在 Lua 中解析 XML(Freeswitch)

Parse XML in Lua (Freeswitch)

如何在 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

我们知道发生了什么。这是由于存储 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