【发布时间】:2011-04-03 22:53:54
【问题描述】:
我正在解析一个看起来像这样的 XML 文档:
<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>
我使用 xpath 拉出 MyBook 节点并像这样遍历它们:
xmldoc.xpath("//MyBook").each do |node|
mytitle=node.xpath("//title").text
puts mytitle
end
输出如下所示:
Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky
Favorite PoemsChocolateDessertsJabberwocky
好像节点真的是整个 xmldoc。但是,如果我打印出迭代器中的节点,每次都是我所期望的,只有一个 MyBook 节点。我需要能够连续地从每个节点中提取子节点,而不是从整个文档中提取所有相同类型的子节点。我做错了什么?
【问题讨论】: