XPath 区分大小写。
所提供的 XPath 表达式都没有选择任何 node,因为在所提供的 XML 文档中没有font
具有命名属性class
的元素(该元素font
具有CLASS
属性,这与具有class
属性不同,因为大小写不同)。
由于相同的原因,font
并且FONT
是具有不同名称的元素。
这两个 XPath 表达式在针对提供的 XML 文档进行评估时,会产生相同的预期结果:
//div[@class="allpricing"]
/p[@class="priceadorn"]
[last()]
/font[@CLASS="adornmentsText"]
[last()]
和
//p/div[@class="allpricing"]
/p[@class="priceadorn"]
[last()]
/font[@CLASS="adornmentsText"]
[last()]
基于 XSLT 的验证:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes"/>
<xsl:template match="/">
<xsl:copy-of select=
'//div[@class="allpricing"]
/p[@class="priceadorn"]
[last()]
/font[@CLASS="adornmentsText"]
[last()]'/>
=============
<xsl:copy-of select=
'//p/div[@class="allpricing"]
/p[@class="priceadorn"]
[last()]
/font[@CLASS="adornmentsText"]
[last()]
'/>
</xsl:template>
</xsl:stylesheet>
当此转换应用于提供的 XML 文档时:
<p>
<div class="allpricing">
<p class="priceadorn">
<FONT CLASS="adornmentsText">NOW: </FONT>
<font CLASS="adornmentsText">$1.00</font>
</p>
</div>
</p>
计算这两个表达式,并将此计算的结果复制到输出:
<font CLASS="adornmentsText">$1.00</font>
=============
<font CLASS="adornmentsText">$1.00</font>