首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从XML文件中提取特定节点

从XML文件中提取特定节点
EN

Stack Overflow用户
提问于 2013-10-22 11:34:33
回答 1查看 499关注 0票数 0

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

要从XML文件中提取的节点:

代码语言:javascript
复制
<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>

我尝试了以下几点:

代码语言:javascript
复制
page_content = doc.xpath("/wcm:root/wcm:element").inner_text

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

然后我试了一下:

代码语言:javascript
复制
page_content = doc.xpath("/wcm:root/wcm:element/Body")

但不起作用。

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-22 13:46:18

我不能百分之百肯定我已经理解了你的意思,但是…别让这阻止了我们。您希望从输入中获取特定节点的内容。您的第一个XPath语句:

代码语言:javascript
复制
/wcm:root/wcm:element

是提取每个名为wcm:element的元素,该元素是wcm:root元素的子元素,该元素是根元素。

你的第二个:

代码语言:javascript
复制
/wcm:root/wcm:element/Body

类似的元素,但是查找名称为Body的元素,这些元素是wcm:element的子元素。

您需要的是获取wcm:element元素的值,其中属性name设置为值Body。通过在XPath中以@符号作为前缀来访问属性,并表示使用[...] (谓词)的where条件。您的XPath语句需要:

代码语言:javascript
复制
/wcm:root/wcm:element[@name = 'Body']

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19516730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档