使用Nokogiri读取XML的问题
问题描述:
我的Ruby脚本应该从URL中读取XML文档并检查其格式是否正确,并返回任何错误。我有以下文字(从Nokogiri tutorial主办的样品坏XML文档:使用Nokogiri读取XML的问题
<?xml version="1.0"?>
<root>
<open>foo
<closed>bar</closed>
</root>
我的测试脚本如下(网址是指托管我的个人服务器上的上述xml文件):
require 'nokogiri'
document = Nokogiri::XML(url)
puts document
puts document.errors
输出是:
<?xml version="1.0"?>
Start tag expected, '<' not found
为什么只捕捉XML文件的第一行它这样做甚至与已知良好的XML文件
?
答
我不太确定你用什么代码实际输出XML的内容。我只看到错误打印代码。不过,我已经发布了一些示例代码,以有效地通过XML与引入nokogiri移动下面:
<item>
Something
</item>
<item>
Else
</item>
doc = Nokogiri::XML(open(url))
set = doc.xpath('//item')
set.each {|item| puts item.to_s}
#=> Something
#=> Else
一般来说,教程here应该帮助你。
答
阅读,如果你是从引入nokogiri XML获取XML已经,然后确保你将它传递给XML函数之前使用” .to_s'。
例如, XML =引入nokogiri :: XML(existing_nokogiri_xml_doc.to_s)
我想我的问题似乎与它的XML文件中读取到一个文件就行了。我还没有找到一个在线的例子:doc = Nokogiri :: XML(url)的作品。每个示例如下所示:@doc = Nokogiri :: XML(File.open(“shows.xml”))。 – Paul
看看我的答案,并让我知道是否有什么不清楚。 – Serabe
你需要open-uri吗? – providence