xpath:有没有办法在xpath中获取所有子文本

时间:2010-01-04 14:15:57

标签: xpath

我在Firefox上使用xpath引擎。我有html:

<span>
   <b>prefix one</b> not bold part
</span>
<span>
   prefix two not bold part
</span>

我希望所有span个子文本都以“前缀一”开头。

我尝试了xpath:

//span[starts-with(child::text(), "prefix one")]

但这不起作用,因为b标记正在干扰。你是怎么解决的?

谢谢

2 个答案:

答案 0 :(得分:14)

如果您知道跨度没有嵌套到其他跨度中,您可以尝试:

//span[ starts-with( descendant-or-self::*/text(),"prefix one" ) ]

descendant-or-self::*/text(),应该返回此子树中的所有文本节点。我不知道starts-with()究竟是如何工作的,但我想当子树中的一些text()节点以“前缀一”开头时条件为真

答案 1 :(得分:-2)

<xsl:template match="span">
<xsl:if test="contains(.,'prefix one')">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:template>