Nokogiri xmlリーダーはxml構文に厳密であることがわかったため、エスケープされていないアンパサンド(例<tag> Garage & Driveway </tag>
)など、xml内で無効な文字が検出されると、エラーがスローされます。
したがって、リーダーを次のように使用すると、次のようになります。
Nokogiri::XML::Reader(infile).each do |node|
# does stuff with node
end
エラーをスローします:
Entity: line 1056614: parser error : xmlParseEntityRef: no name
<tag>The & is invalid</tag>
^
transmogrifier/gems/nokogiri-1.5.5/lib/nokogiri/xml/reader.rb:106:in `each'
このようなXMLの場合:
<root>
<items>
<tag>The & is invalid</tag>
</items>
<items> ... </items>
<root>
大きなドキュメントの解析の途中。Nokogiri :: XML :: Parserがこれを(より)適切に処理し、無効な文字をすべて削除することに気づきました。これにより、より適切な解決策が期待できます。
理想的には、エラーをキャッチして各解析を続行できるようにしたいと思います(無効な文字を含むアイテムはほとんどないため)。これを優雅に処理する方法について何か提案はありますか?
ParseOptionsを渡すことができることに気づきましたが、それらを使用することはできませんでした。
前もって感謝します!