1

blogspot でエクスポートされた xml ファイルがあり、次のようになります。

<feed>
<entry>
<title> title </title>
<content type="html"> Content </content>
</entry>
<entry>
<title> title </title>
<content type="html"> Content </content>
</entry>
</feed>

Nokogiri と 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

しかし、それは私に何も与えていません:/

助言がありますか?:/

4

3 に答える 3

0

あなたのコードは私のために働きます。ノキギリの特定のバージョンに問題がありました。

私は得る:

 Content
 Content

nokogiri (1.4.1 x86-mswin32) を使用しています。

于 2010-07-20T03:42:59.597 に答える
0

フィードの属性を削除する必要があったことがわかりました

<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'>
于 2010-07-20T04:01:51.310 に答える
0

私はちょうどこの質問に出くわしました。問題は XML 名前空間にあるようです:

「フィードの属性を削除しなければならなかったことがわかりました」

<feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'>

XML 名前空間は、同様のタグを分離する方法を提供するため、ノードへのアクセスを複雑にします。の「ネームスペース」セクションを読んでくださいSearching an HTML / XML Document

Nokogiri にはremove_namespaces!、問題に対処するための便利な方法もありますが、いくつかの欠点もあります。

于 2010-10-30T20:47:41.817 に答える