XPath では大文字と小文字が区別されます。
提供された XPath 式はどれも node を選択しません。これは、提供された XML 文書にはfont
名前付きの属性を持つ要素がないためですclass
(要素font
にはCLASS
属性があり、これはclass
大文字と小文字が異なるため、属性を持つこととは異なります)。
同じ理由で、font
とFONT
は異なる名前の要素です。
これら 2 つの 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>
2 つの式が評価され、この評価の結果が出力にコピーされます。
<font CLASS="adornmentsText">$1.00</font>
=============
<font CLASS="adornmentsText">$1.00</font>