2016-11-16 25 views
0

Luaを使って解析したい単純なxmlファイルがあります。どのlua xmlライブラリを使用すればいいですか?私はxml lib by Lubykを試しましたが、それは私のためには機能しませんでした。ここでLuaでxmlファイルを解析するには?

は私がやったことです: $ sudo luarocks install xml

は、モジュールをインポートしようとしました:になってしまった require("xml")

:だから

error loading module 'xml.core' from file '/usr/lib/lua/5.3/xml/core.so': 
    /usr/lib/lua/5.3/xml/core.so: undefined symbol: lua_tonumber 
lua: /usr/share/lua/5.3/xml/init.lua:31: attempt to call a nil value (field 'Parser') 
stack traceback: 
    /usr/share/lua/5.3/xml/init.lua:31: in main chunk 
    [C]: in function 'require' 
    lua_doc_reader.lua:3: in main chunk 
    [C]: in ? 

、事実上のXMLはLuaの中でライブラリーを読んでいるものを?

+0

expatに基づいて[my lxml](http://webserver2.tecgraf.puc-rio.br/~lhf/ftp/lua/index.html#lxml)を試してください。 – lhf

+1

申し訳ありませんが、「はるかに、ライブラリをLuaに追加する最も簡単な方法は、動的にロードすることです。」と、私は読んでいません。 – minerals

+1

私のポストには「動的読み込み」はありません。xmlを読むための簡単な方法を探しています。また、Makefileを編集してからluaをコンパイルしてダイナミックローディングをサポートするだけで、あなたのウェブサイトからlibsの1つをインストールすると真剣に考えていますか?私はあなたの助けに本当に感謝しますが、これはpplがあなたのlibコレクションを使用する方法ではありません。 – minerals

答えて

0

さまざまなxmlライブラリを使用しようとした後、私のために働いたのはxmlreaderでした。

$ sudo luarocks install lua-xmlreader

そして、XMLReaderのドキュメントによれば:

require('xmlreader') 

fhandle = io.open("temp.xml", 'r') 
data = fhandle:read("*a") 

local r = assert(xmlreader.from_string(data)) 
while (r:read()) do 
    local leadingws = (' '):rep(r:depth()) 
    if (r:node_type() == 'element') then 
    io.write(('%s%s:'):format(leadingws, r:name())) 
    while (r:move_to_next_attribute()) do 
     io.write((' %s=%q'):format(r:name(), r:value())) 
    end 
    io.write('\n') 
    end 
end 

上記のコードは、ドキュメントのXML構造をプリントアウトします。

関連する問題