【问题标题】:Parse XML in Lua (Freeswitch)在 Lua 中解析 XML (Freeswitch)
【发布时间】:2017-02-17 23:50:15
【问题描述】:

在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

【问题讨论】:

  • 如果 Freeswitch 干扰了基本的 Lua 功能,比如创建匿名函数,那就是一个更大的问题。您不太可能在这样的环境中运行任何东西。您首先需要本地化实际错误;找出原因是 Freeswitch 还是你做了什么。
  • Lua in Freeswitch 看起来没有被修改。而且我找不到您在 FreeSwitch 来源中提供的错误消息。
  • 你能粘贴 XML 吗?

标签: lua xml-parsing freeswitch


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    相关资源
    最近更新 更多