使用 Nokogiri 解析 blogspot XML 文件
我有一个 blogspot 导出的 xml 文件,它看起来像这样:
<feed>
<entry>
<title> title </title>
<content type="html"> Content </content>
</entry>
<entry>
<title> title </title>
<content type="html"> Content </content>
</entry>
</feed>
How do I parse with Nokogiri and Xpath???
这是我所拥有的:
#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::XML(File.open("blogspot.xml"))
doc.xpath('//content[@type="html"]').each do |node|
puts node.text
end
但它没有给我任何东西:/
有什么建议吗? :/
I have a blogspot exported xml file and it looks something like this:
<feed>
<entry>
<title> title </title>
<content type="html"> Content </content>
</entry>
<entry>
<title> title </title>
<content type="html"> Content </content>
</entry>
</feed>
How do I parse with Nokogiri and Xpath???
Here is what I have :
#!/usr/bin/env ruby
require 'rubygems'
require 'nokogiri'
doc = Nokogiri::XML(File.open("blogspot.xml"))
doc.xpath('//content[@type="html"]').each do |node|
puts node.text
end
but it's not giving me anything :/
any suggestions? :/
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的代码对我有用。某些版本的 Nokigiri 存在一些问题。
我得到:
我正在使用 nokogiri (1.4.1 x86-mswin32)
Your code works for me. There were some problems with certain version of Nokigiri.
I get:
I'm using nokogiri (1.4.1 x86-mswin32)
事实证明我必须删除 feed 的属性
turns out that i had to delete the attributes for feed
我刚刚偶然发现了这个问题。问题似乎是 XML 命名空间:
XML 命名空间使访问节点变得复杂,因为它们提供了一种分隔相似标签的方法。阅读
搜索 HTML / XML 文档
的“命名空间”部分。Nokogiri 还具有
remove_namespaces!
方法有时是处理问题的有用方法,但也有一些缺点。I just stumbled on this question. The issue appears to be XML namespaces:
XML Namespaces complicate accessing nodes because they provide a way to separate similar tags. Read the "Namespaces" section of
Searching an HTML / XML Document
.Nokogiri also has the
remove_namespaces!
method which is a sometimes-useful way of dealing with the problem but has some downsides too.