我只想使用Ruby中的doc.xpath从XML文件中提取主体节点/标记
要从XML文件中提取的节点:
<wcm:element name="Body"><p>A new study suggests that <a href="ssNODELINK/SmokingAndCancer">tobacco</a> companies may be using online video portals, such as YouTube, to get around advertising restrictions and market their products to young people.</p>
</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文件的正文部分?
发布于 2013-10-22 13:46:18
我不能百分之百肯定我已经理解了你的意思,但是…别让这阻止了我们。您希望从输入中获取特定节点的内容。您的第一个XPath语句:
/wcm:root/wcm:element是提取每个名为wcm:element的元素,该元素是wcm:root元素的子元素,该元素是根元素。
你的第二个:
/wcm:root/wcm:element/Body类似的元素,但是查找名称为Body的元素,这些元素是wcm:element的子元素。
您需要的是获取wcm:element元素的值,其中属性name设置为值Body。通过在XPath中以@符号作为前缀来访问属性,并表示使用[...] (谓词)的where条件。您的XPath语句需要:
/wcm:root/wcm:element[@name = 'Body']我假设您的XPath执行环境很好--名称空间前缀(wcm),因为您说第一个查询返回内容。
https://stackoverflow.com/questions/19516730
复制相似问题