2017-02-17 1 views
1

Freeswitch에서 XML 파일을 사용하는 동안 루아에서 XML 파일을 구문 분석하는 방법은 무엇입니까? 그들은이루아에서 구문 분석 XML

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

:

https://github.com/manoelcampos/LuaXML

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

다음

https://github.com/Phrogz/SLAXML

는 ASR 모듈에서 다시 전화를 샘플 XML입니다 :

나는이 프로젝트를 시도 익명의 기능으로 인해 모두 실패했습니다.

'<name>' expected near anonymous function lua 

프리 스타일에서 xml을 구문 분석하기위한 내장 된 지원이 있습니까?

참고 : 우리는 무슨 일이 일어나고 있는지 알아 냈

+0

Freeswitch는 익명 함수를 만드는 등의 기본 루아 기능을 방해하는 경우, 즉 더 큰 문제입니다 :

https://github.com/Cluain/Lua-Simple-XML-Parser 예를 들어, 우리는이 변화를했습니다. 그러한 환경에서 어떤 것도 실행할 수는 없습니다. 먼저 실제 오류를 현지화해야합니다. 프리츠 위치가 원인인지 아니면 당신이 한 일인지 알아보십시오. –

+0

[Lua in Freeswitch] (https://freeswitch.org/stash/projects/FS/repos/freeswitch/browse/src/mod/languages/mod_lua/lua)는 수정되지 않은 것처럼 보입니다. FreeSwitch 소스에서 제공 한 오류 메시지를 찾을 수 없습니다. –

+0

XML을 붙여 넣을 수 있습니까? –

답변

1

.m4 같이 루아 파일이 저장됩니다. 이것은 .m4 확장자를 가진 lua 파일을 저장하기 때문에 발생했으며 format은 m4 키워드입니다.

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