用于选择具有子节点的父节点的xpath表达式
我当前使用YQL来使用xpath提取维基百科的内容。用于选择具有子节点的父节点的xpath表达式
我目前使用XPath表达式为\\p
。这个表达式选择所有段落节点剥离出像<a>
所有子节点,<sup>
,<strong>
等。
由于这一点,我得到维基百科足球的输出这样的页面。 Link here
在此输出中,链接被剥离。
维基百科,自由的百科全书
。对于其他用途,见
或足球,,,,和,。有的称为 足球的许多不同的游戏。从左上到右下:
都在不同程度上都涉及到一个球与脚分数。全球这些运动中最受欢迎的是 ,只是“足球”或“足球”。不合格,这个词适用于 无论哪种形式的足球是最受欢迎的区域范围内的 其中出现包括,,,和其他相关的 比赛。足球的这些变化被称为足球“代码”。 .....................多
预计输出
维基百科,自由的百科全书
对于其他用途,见足球(消歧)。
一些被称为足球的不同游戏。从左上角到 右下:协会足球或足球,澳大利亚规则 足球,国际足球规则,橄榄球联盟,橄榄球联赛,并 美式足球。
足球体育都涉及不同程度,踢一球 脚进球。这些全球最受欢迎的运动项目是足球,通常称为“足球”或 “足球”。不合格的,字足球适用于任何一个 足球的形式是在字 出现,包括美式足球,澳大利亚人规则橄榄球, 加拿大足球,盖尔式足球,橄榄球区域范围内最流行联盟,橄榄球联盟1和 其他相关游戏。足球的这些变化被称为足球“代码” 。
(更大胆的话是一个具有链接)
因此,如何提取与它的子节点沿该段?我是xpath新手
正确的答案是//p/descendant-or-self::*
为了有父节点和子节点。
感谢您的尝试......但子节点不在父节点内......如何让子节点在父节点的正确位置? –
@AakashChakravarthy - 我认为你对XPath表达式返回的内容感到困惑。这听起来像你想看到*源* HTML,因为它出现在每个段落下面。一个XPath表达式选择节点,所以当你使用alain的答案时,你会得到该表达式匹配的节点列表。这是所有比赛的*组*。这不是*层次结构*。 –
@AakashChakravarthy - 换句话说,如果它匹配一个'p' *和* a''那个'p'的子元素,那么它将返回列表中的两个节点(不是*一个*节点,它显示在它下面的孩子)。 –
我认为您正在寻找// p/* –
// p/*仅给出我的子节点...我需要父节点和子节点... –
对不起,误解了您的需求我发表了答案。 –