这是xml代码
<?xml-stylesheet type="text/xsl" href="autotxt.xsl" ?>
<delivery>
<wName>Reston</wName>
<wContact>John McAdams</wContact>
<orderDate>8/15/2005</orderDate>
<recvDate>8/21/2005</recvDate>
<recvBy>David Hanson</recvBy>
<sCost>385</sCost>
<manifest>
<item itemID="CM204">
<itemName>Camshaft (Box 20)</itemName>
<itemQty>10</itemQty>
<itemPrice>289.95</itemPrice>
</item>
<item itemID="CR201">
<itemName>Carburetor (Box 25)</itemName>
<itemQty>5</itemQty>
<itemPrice>159.95</itemPrice>
</item>
<item itemID="CRK310">
<itemName>Crankshaft (Box 10)</itemName>
<itemQty>3</itemQty>
<itemPrice>109.95</itemPrice>
</item>
<item itemID="DS503">
<itemName>Distributor (Box 15)</itemName>
<itemQty>5</itemQty>
<itemPrice>125.95</itemPrice>
</item>
<item itemID="EC501">
<itemName>Engine Computer (Box 1)</itemName>
<itemQty>5</itemQty>
<itemPrice>414.59</itemPrice>
</item>
<item itemID="OP460">
<itemName>Oil Pump (Box 20)</itemName>
<itemQty>3</itemQty>
<itemPrice>214.95</itemPrice>
</item>
<item itemID="SP300">
<itemName>Standard Spark Plugs (Box 100)</itemName>
<itemQty>10</itemQty>
<itemPrice>114.45</itemPrice>
</item>
<item itemID="SP310">
<itemName>Delux Spark Plugs (Box 100)</itemName>
<itemQty>10</itemQty>
<itemPrice>139.95</itemPrice>
</item>
<item itemID="TB261">
<itemName>Timing Belt (Box 40)</itemName>
<itemQty>5</itemQty>
<itemPrice>94.90</itemPrice>
</item>
<item itemID="TR301">
<itemName>Transmission (Box 1)</itemName>
<itemQty>5</itemQty>
<itemPrice>310.95</itemPrice>
</item>
<item itemID="BA105">
<itemName>Standard Batteries (Box 12)</itemName>
<itemQty>5</itemQty>
<itemPrice>495.40</itemPrice>
</item>
<item itemID="BA205">
<itemName>Security Batteries (Box 4)</itemName>
<itemQty>3</itemQty>
<itemPrice>289.95</itemPrice>
</item>
<item itemID="BA115">
<itemName>Delux Batteries (Box 12)</itemName>
<itemQty>5</itemQty>
<itemPrice>525.95</itemPrice>
</item>
<item itemID="SF305">
<itemName>Standard Air Filters (Box 16)</itemName>
<itemQty>5</itemQty>
<itemPrice>148.25</itemPrice>
</item>
<item itemID="FI372">
<itemName>Fuel Injection Kits (Box 1)</itemName>
<itemQty>15</itemQty>
<itemPrice>129.95</itemPrice>
</item>
<item itemID="BRK681">
<itemName>Brake Line Kit (Box 1)</itemName>
<itemQty>25</itemQty>
<itemPrice>29.95</itemPrice>
</item>
<item itemID="CF401">
<itemName>Cooling Fans (Box 20)</itemName>
<itemQty>5</itemQty>
<itemPrice>34.41</itemPrice>
</item>
<item itemID="ALT561">
<itemName>Chrome-plated Alternators (Box 5)</itemName>
<itemQty>3</itemQty>
<itemPrice>105.95</itemPrice>
</item>
<item itemID="ALT610">
<itemName>Alternator Case Kit (Box 1)</itemName>
<itemQty>5</itemQty>
<itemPrice>69.95</itemPrice>
</item>
<item itemID="CC310">
<itemName>Catalytic Converters (Box 5)</itemName>
<itemQty>3</itemQty>
<itemPrice>121.59</itemPrice>
</item>
<item itemID="CC315">
<itemName>Universal Catalytic Converters (Box 5)</itemName>
<itemQty>5</itemQty>
<itemPrice>68.95</itemPrice>
</item>
</manifest>
</delivery>
这是XSL
<xsl:stylesheet version='1.0'
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="4.0" />
<xsl:template match="/">
<html>
<head>
<title>Election Night Results</title>
<link href="autotxt.css" rel="stylesheet" type="text/css" /> </head>
<body>
<ul>
<xsl:for-each select="delivery/manifest/item">
<li>
<xsl:value-of select="itemName" />
</li>
</xsl:for-each>
</ul>
<xsl:for-each select="delivery/wName">
<ul>
<li>
<xsl:value-of select="wName" />
</li>
</xsl:for-each>
</ul>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
我的问题是为什么它不显示wName?
答案 0 :(得分:1)
for-each
更改了XPath范围,因此它在每个清单/项目中查找wName(这就是为什么选择itemName
有效)。您可以通过将选择从“wName”更改为“../../wName”来返回树,或者在样式表的顶部定义文档根的变量(即,在for-each之外) ):
<xsl:variable name="doc" select="/"/>
然后在每个你可以做的内部
<xsl:value-of select="$doc/delivery/wName"/>
答案 1 :(得分:1)
在您的代码中:
<xsl:for-each select="delivery/wName">
<ul>
<li>
<xsl:value-of select="wName" />
</li>
</ul>
</xsl:for-each>
您想输出wName
delivery/wName
子项的字符串值。但是,wName
元素没有wName
子元素。
解决方案:只输出当前wName
的字符串值:
<强>替换强>:
<xsl:value-of select="wName" />
<xsl:value-of select="." />