我为xml写了xslt但是在尝试从根节点读取ItemNumber时我被卡住了。这是代码段
XML
<?xml version="1.0"?>
<Items>
<Item ItemNumber="1251469">
<ProductName>Cherub Baby 240ml Single - Light Blue</ProductName>
<ProviderName>Cherub Baby</ProviderName>
<Quantity>25</Quantity>
<Price>7.99</Price>
</Item>
<Item ItemNumber="1148087">
<ProductName>Dolby Metal-Black-Matte</ProductName>
<ProviderName>Vestal Watches</ProviderName>
<Quantity>4</Quantity>
<Price>67.99</Price>
</Item>
</Items>
XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<xsl:for-each select="Items/Item">
<table border="2">
<tr bgcolor="#9acd32">
<td>Provider: <xsl:value-of select="ProductName"/></td>
</tr>
<tr>
<td>Item Number</td>
<td>Quantity</td>
<td>Unit Price</td>
<td>Total</td>
</tr>
<tr>
<td><xsl:value-of select="ItemNumber"/></td> <-- //unable to get the value
<td><xsl:value-of select="Quantity"/></td>
<td><xsl:value-of select="Price"/></td>
<td><xsl:value-of select="Quantity * Price"/></td>
</tr>
<tr>
<td style="border:none"></td>
<td style="border:none"></td>
<td style="border:none">Sub Total</td>
<td><xsl:value-of select="Quantity * Price"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我需要这样的输出。我几乎已经完成了但在获取ItemNumber时遇到了问题。任何人都可以指导我。我该怎么读这个属性。帮助将得到赞赏。
由于
答案 0 :(得分:2)
鉴于<Item ItemNumber="1148087">
,ItemNumber
是一个属性节点,您选择XPath为@ItemNumber
(或attribute::ItemNumber
,如果您想要详细)。您的尝试选择子元素,而不是属性。