我正在学习 XSLT 2.0 和 XPath。在创建示例时,我遇到了 XPath 中可用的前一个轴并创建了以下示例。
请找到以下用作输入的 order.xml 文件。
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<Order id="12345">
<Item>
<ItemId>007</ItemId>
<ItemName>iPhone 5</ItemName>
<Price>500</Price>
<Quantity>1</Quantity>
</Item>
<Item>
<ItemId>456</ItemId>
<ItemName>Ipad</ItemName>
<Price>600</Price>
<Quantity>2</Quantity>
</Item>
<Item>
<ItemId>7864567</ItemId>
<ItemName>Personal Development Book</ItemName>
<Price>10</Price>
<Quantity>10</Quantity>
</Item>
<Item>
<ItemId>123</ItemId>
<ItemName>Java Book</ItemName>
<Price>20</Price>
<Quantity>12</Quantity>
</Item>
</Order>
请找到以下用于转换上述 XML 的 XSLT testaxis.xsl 文件。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<xsl:value-of select="count(/Order/Item[ItemName='Ipad']/ItemName/preceding::*)" />
</xsl:template>
转换后的输出为 6
如果我没记错的话,这里的上下文节点低于一个。
<ItemName>Ipad</ItemName>
如果我们计算上下文节点之前的所有节点,则计数为5。现在提出问题,为什么在输出中将节点数显示为6?
如果我误解了什么,请告诉我
提前致谢。