2017-02-17 4 views
1

Как разобрать xml-файл в lua при использовании его в Freeswitch?Анализ XML в Lua (Freeswitch)

Я попробовал эти проекты:

https://github.com/manoelcampos/LuaXML

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

https://github.com/Phrogz/SLAXML

Вот пример XML перезвонили из модуля ASR:

<?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

+0

Если FreeSwitch конфликтует с базовой функциональностью Lua, как создание анонимных функций, это гораздо более серьезная проблема. Вы вряд ли сможете что-либо запускать в такой среде. Сначала вам нужно локализовать фактическую ошибку; узнайте, является ли Freeswitch причиной или если вы что-то сделали. –

+0

[Lua in Freeswitch] (https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/languages/mod_lua/lua) выглядит так, как будто он не был изменен. И я не могу найти сообщение об ошибке, которое вы дали в источниках FreeSwitch. –

+0

Можете ли вы вставить XML? –

ответ

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 
Смежные вопросы