在Lua中解析XML(Freeswitch)

时间:2017-02-17 23:50:16

标签: lua xml-parsing freeswitch

如何在Freeswitch中使用lua解析xua中的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

1 个答案:

答案 0 :(得分:1)

我们弄清楚发生了什么。这是因为存储了扩展名为.m4的lua文件,格式为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