我在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
标记正在干扰。你是怎么解决的?
谢谢
答案 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>