2017-03-17 26 views
0

私はLuaXMLを使ってXMLファイルを解析しています。私は今、私は単純にそうように、パーサーを通じて、私のファイルを入れている、ライブラリをテストするためにLuaXMLリポジトリで見つかった例を使用しています:サンプルファイルと私が見つけた他の例としてLuaXML 'XMLDeclは開始ドキュメント[char = 1]にありません'?

local filename = "dir/myxml.xml" 
local xmltext = "" 
local f, e = io.open(filename, "r") 

if f then 
    --Gets the entire file content and stores into a string 
    xmltext = f:read("*a") 
else 
    error(e) 
end 

--Instantiate the object the states the XML file as a Lua table 
local xmlhandler = simpleTreeHandler() 

--Instantiate the object that parses the XML to a Lua table 
local xmlparser = xmlParser(xmlhandler) 
xmlparser:parse(xmltext) 

オンラインコードは完全に機能します。

...dir/LuaXML/xml.lua:170: XMLDecl not at start of document [char=1] 

私の解釈は、XML宣言が正しくないということですが、XMLファイルの最初の行は、次のとおりです:

<?xml version="1.0" encoding="utf-8"?> 
ただし、ファイルの私は、私は次のエラーを取得する解析します

例と同じ/類似しています。また、最初の行の前には空白がありません。

ありがとうございます!

+0

おそらく、BOMは存在しますか? –

+0

@EgorSkriptunoffこんにちは、私はBOMとは何ですか、XMLファイルを使用するのは初めてですか? –

+0

[BOM](https://en.wikipedia.org/wiki/Byte_order_mark) –

答えて

0

このエラーはBOMによるものです。それを修正するために、XMLファイルをNotepad ++で開いてから、以下を実行しました。

エンコード - > UTF-8でエンコードします。

プログラムを再頒布するときにエラーは発生しませんでした。

関連する問題