ei Verwendung von XPath auf einem einzelnen Knoten werden Elemente in allen Knoten zurückgegebe

Ich analysiere ein XML-Dokument, das ungefähr so aussieht:

<MyBook>
   <title>Favorite Poems</title>
   <issn>123-456</issn>
   <pages>45</pages>
</MyBook>
<MyBook>
   <title>Chocolate Desserts</title>
   <issn>654-098</issn>
   <pages>100</pages>
</MyBook>
<MyBook>
   <title>Jabberwocky</title>
   <issn>454-545</issn>
   <pages>19</pages>
</MyBook>

Ich benutze xpath, um die MyBook-Knoten zu entfernen und sie wie folgt zu durchlaufen:

xmldoc.xpath("//MyBook").each do |node|
   mytitle=node.xpath("//title").text
   puts mytitle
end

die Ausgabe sieht so aus:

Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky

als ob der Knoten wirklich das ganze xmldoc ist. Wenn ich jedoch den Knoten innerhalb des Iterators drucke, ist es jedes Mal, was ich erwarte, nur ein einzelner MyBook-Knoten. Ich muss in der Lage sein, die untergeordneten Knoten nacheinander aus jedem Knoten zu ziehen, nicht alle der gleichen Art von untergeordneten Knoten aus dem gesamten Dokument. Was mache ich falsch

Antworten auf die Frage(4)

Ihre Antwort auf die Frage