使用(假設初始上下文節點的div
元素的父元素):
div/ul/li/span[not(strike)]
這將選擇不具有一個strike
子任何span
元件(以及是一個子li
是ul
的孩子,它是div
的孩子,它是初始上下文節點的孩子)
並使用:
div/ul/li/span[strike]
這將選擇具有strike
孩子(並且是li
是一個ul
的孩子是一個div
的孩子是一個孩子的孩子的任何span
元素初始上下文節點)
XSLT - 基於驗證:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/">
<xsl:copy-of select="div/ul/li/span[not(strike)]"/>
==============
<xsl:copy-of select="div/ul/li/span[strike]"/>
</xsl:template>
</xsl:stylesheet>
當該變換被應用到所提供的XML文檔:
<div class="availability">
Available:
<ul>
<li><span class="month available">March</span></li>
<li><span class="month unavailable"><strike>April</strike></span></li>
<li><span class="month unavailable"><strike>May</strike></span></li>
<li><span class="month unavailable"><strike>June</strike></span></li>
</ul>
</div>
兩個的XPath表達式,並且所述結果(選擇的節點)將被複制到輸出,通過在視覺上獨特的分隔符字符串分隔:
<span class="month available">March</span>
==============
<span class="month unavailable">
<strike>April</strike>
</span>
<span class="month unavailable">
<strike>May</strike>
</span>
<span class="month unavailable">
<strike>June</strike>
</span>
完美。謝謝! – sleestak