0

我只想在 Ruby 中使用 doc.xpath 从 XML 文件中提取主体节点/标签

从 XML 文件中提取的节点:

<wcm:element name="Body">&lt;p&gt;A new study suggests that &lt;a href="ssNODELINK/SmokingAndCancer"&gt;tobacco&lt;/a&gt; companies may be using online video portals, such as YouTube, to get around advertising restrictions and market their products to young people.&lt;/p&gt;
</wcm:element>

我尝试了以下方法:

page_content = doc.xpath("/wcm:root/wcm:element").inner_text

但这会提取每个节点的所有内容

然后我尝试了这个:

page_content = doc.xpath("/wcm:root/wcm:element/Body")

但不起作用。

任何人有任何建议如何在 Ruby 中使用 doc.xpath 准确提取 XML 文件的正文部分?

4

1 回答 1

0

我不是 100% 确定我已经理解你的意思,但是……我们不要让它阻止我们。您想从输入中获取特定节点的内容。您的第一个 XPath 语句:

/wcm:root/wcm:element

正在提取名称为根元素wcm:element的元素的子元素的每个元素。wcm:root

你的第二个:

/wcm:root/wcm:element/Body

类似,但查找名称为 .Body的子级的元素wcm:element

您需要的是获取属性设置为 value的wcm:element元素的值。您可以通过在 XPath 中为属性添加前缀来访问属性,并表达您使用的where条件- 谓词。您的 XPath 语句必须是:nameBody@[...]

/wcm:root/wcm:element[@name = 'Body']

我假设您的 XPath 执行环境可以使用名称空间前缀 (wcm),因为您说您的第一个查询返回了内容。

于 2013-10-22T13:46:18.557 回答