2011-12-01 35 views
1

的Ruby代碼:引入nokogiri不想讀取整個文件

require 'nokogiri' 

f = open("doc2.xml") 

# f.each { |line| puts line} # <-- works, so it's reading the whole file 

@doc = Nokogiri::XML(f) 

puts @doc.xpath("//2") # Nokogiri doesn't bother to get any nodes other than the first one. 

的XML文檔:

<?xml version="1.0"?> 
<1> T </1> 

<2> U </2> 

<3> V </3> 

輸出:

是啊,有沒有輸出。我仍然不知道爲什麼Nokogiri只是閱讀文檔的第一行然後放棄。這是不正確的XML嗎?

回答

2

是的,這是不正確的XML。必須有一個外部元素:

<?xml version="1.0"?> 
<content> 
    <1> T </1> 
    <2> U </2> 
    <3> V </3> 
</content> 
+0

謝謝!這實際上是我第一次嘗試使用XML來組織數據,並且誠實地不知道這一點:)謝謝! – itdoesntwork