HI!
我的XML:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<Dokument>
<Skupina id="3">
<Naziv_skupine>RAZSTAVNI PROSTOR</Naziv_skupine>
<Dvorana id="295">
<Naziv_dvorane>DVORANA C</Naziv_dvorane>
<Postavka id="41">
<Artikel>1105</Artikel>
</Postavka>
</Dvorana>
<Dvorana id="281">
<Naziv_dvorane>DVORANA A</Naziv_dvorane>
<Postavka id="41">
<Artikel>1102</Artikel>
</Postavka>
</Dvorana>
</Skupina>
<Skupina id="86">
<Naziv_skupine>UPORABNINA PROSTORA, TEHNIČNE OPREME IN OSEBJA</Naziv_skupine>
<Dvorana id="295">
<Naziv_dvorane>DVORANA C</Naziv_dvorane>
<Postavka id="41">
<Artikel>2100</Artikel>
</Postavka>
</Dvorana>
</Skupina>
</Dokument>
我的XSLT:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- Edited by XMLSpy® -->
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<table border="1">
<xsl:for-each select="Dokument/Skupina">
<tr>
<td align="left" colspan="7" valign="top"><xsl:value-of select="Naziv_skupine"/></td>
</tr>
<xsl:for-each select="/Dokument/Skupina/Dvorana">
<tr>
<td align="left" colspan="7" valign="top"><xsl:value-of select="Naziv_dvorane"/></td>
</tr>
<xsl:for-each select="/Dokument/Skupina/Dvorana/Postavka">
<tr>
<td valign="top"><xsl:value-of select="Artikel"/></td>
</tr>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
结果:
RAZSTAVNI PROSTOR
DVORANA C
1105
1102
2100
DVORANA A
1105
1102
2100
DVORANA C
1105
1102
2100
UPORABNINA PROSTORA, TEHNIČNE OPREME IN OSEBJA
DVORANA C
1105
1102
2100
DVORANA A
1105
1102
2100
DVORANA C
1105
1102
2100
但我希望结果如下:
RAZSTAVNI PROSTOR
DVORANA C
1105
DVORANA A
1102
UPORABNINA PROSTORA, TEHNIČNE OPREME IN OSEBJA
DVORANA C
2100
我哪里出错?
谢谢!
汤姆
答案 0 :(得分:5)
在第二个for-each中,尝试更改此路径
/Dokument/Skupina/Dvorana/Postavka
到
./Postavka
您希望在第一个指向的节点处继续第二个for-each循环。您正在做的是从根目录重新选择所有节点,因为您指定了/ Dokument /....