如何从元素中获取xpath文本但基于类排除其中的一些?

时间:2015-03-06 16:56:38

标签: xml xslt xpath

我如何获得文字"显示我,并显示我"使用xpath表达式?我需要" OMIT ME"删去。

<table>
<tr>
<td>
<span class="omitME">OMIT ME</span>
Show ME, and
<span class="showME"> Show me too</span>
</td>
</tr>
</table>

2 个答案:

答案 0 :(得分:4)

在XPath中,您可以使用:

/table/tr/td//text()[not(parent::span[@class='omitME'])]

选择td元素的所有文本节点后代,但父级为“omitME”类的span的那些除外。

或者也许:

//text()[not(parent::span[@class='omitME'])]

再次选择根节点的所有文本节点后代 - 除了父节点为“省略”span的那些节点后。

在XSLT中,您可能会使用其他内容,具体取决于当前上下文和练习的目的。

答案 1 :(得分:1)

一个简单的方法:

<xsl:template match="td | span[@class='showME']">
  <xsl:apply-templates/>
</xsl:template>
<xsl:template match="span[@class='omitME']"/>