【发布时间】:2010-12-15 18:01:06
【问题描述】:
我是使用 Nokogiri 阅读器解析 XML 文件的新手。这是我要解析的 XML 文件和示例代码:
<?xml version='1.0' encoding='UTF-8'?>
<inventory>
<tire name="super slick racing tire" />
<tire name="all weather tire" />
</inventory>
-----------------------------------------------------------------
require 'rubygems'
require 'nokogiri'
io = File.open('test.xml', 'r')
reader = Nokogiri::XML::Reader(io)
reader.each do |node|
# node is an instance of Nokogiri::XML::Readerruby
puts node.name
end
以下是我得到的错误信息:
pcs$ ruby1.9 TestNok.rb
WARNING: Nokogiri was built against LibXML version 2.6.32, but has dynamically loaded 2.7.5
/usr/lib/ruby/1.9.0/nokogiri/xml/reader.rb:60:in `read': ParsePI: PI xm never end ... (Nokogiri::XML::SyntaxError)
from /usr/lib/ruby/1.9.0/nokogiri/xml/reader.rb:60:in `each'
from TestNok.rb:7:in `<main>'
<dummy toplevel>: [BUG] Segmentation fault
ruby 1.9.0 (2008-10-04 revision 19669) [i486-linux]
-- control frame ----------
c:0001 p:0000 s:0002 b:0002 l:000001 d:000001 TOP
---------------------------
-- backtrace of native function call (Use addr2line) --
0xb08316
0xa285e7
0xa2866a
0xab1144
0x9a0410
0xa5f315
0xa2b994
0xa2baae
0x80487e8
0x469b56
0x80486e1
-------------------------------------------------------
Aborted
任何帮助将不胜感激。
【问题讨论】:
-
@Philip,在将代码和堆栈跟踪粘贴到 SO 之前,将它们放入文本编辑器并将所有内容缩进 4 个空格,以便 SO 将其识别为要逐字显示的文本。否则,它会将 XML 标记和其他嵌入字符解释为格式。在您的情况下,大部分帖子因此被隐藏。
-
stackoverflow.com/q/5901400/128421 讨论了这个问题以及如何解决它。
标签: xml nokogiri html-parsing