当我使用为什么for-each不一致?
<xsl:for-each select="plm:PLMXML/plm:ProductRevision>
和价值的作为
<td><xsl:value-of select="plm:UserData/plm:UserValue[1]/@value"/></td>
如下网页,我使用xsl形成完美的作品。但是当我使用
<xsl:for-each select="plm:PLMXML>
,并在
<td>
<xsl:value-of
select="plm:ProductRevision/plm:UserData/plm:UserValue[1]/@value"/>
</td>
一种价值的网页我创建不再正常形成。
在第一种情况下,HTM输出这样的:
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd33">
<th>Category Type</th>
<th>DS Def. Modified?</th>
<th>DS Def Verified?</th>
<th>Designation</th>
<th>Hazardous</th>
<th>test column</th>
<th>Make/Buy</th>
<th>Packaging</th>
</tr>
<tr>
<td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Make</td>
<td></td>
</td>
</tr>
<tr>
<td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>Make</td>
<td></td>
</td>
</tr>
</table>
</body>
</html>
这仅仅是理所应当的。 htm表中将有两行。以下是第二种情况的输出,其中我所做的所有操作都是从for-each
选择值取plm:ProductRevision
,并将其附加到value-of
select语句的开头。这两个应该是同义词吗?这是完成后的输出。
<html xmlns:plm="http://www.plmxml.org/Schemas/PLMXMLSchema" xmlns:plmxml_cl="http://www.plmxml.org/Schemas/PLMXMLClassificationSchema">
<body>
<h2>My CD Collection</h2>
<table border="1">
<tr bgcolor="#9acd33">
<th>Category Type</th>
<th>DS Def. Modified?</th>
<th>DS Def Verified?</th>
<th>Designation</th>
<th>Hazardous</th>
<th>test column</th>
<th>Make/Buy</th>
<th>Packaging</th>
</tr>
<tr>
<td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>Make Make</td>
<td> </td>
</td>
</tr>
</table>
</body>
</html>
请帮我理解为什么。我需要做第二种方式的原因是我有来自plm:PLMXML的父节点下的不同节点的值。换句话说,我有下PLM值:PLMXML/PLM:ProductRevision和下PLM:PLMXML/plmxml_cl:ICO所以我想使用
<xsl:for-each select="plm:PLMXML>
<tr>
<td>
<xsl:value-of
select="plm:ProductRevision/plm:UserData/plm:UserValue[2]/@value"/>
</td>
<td>
<xsl:value-of
select="plmxml_cl:ICO/plmxml_cl:Property[@attributeId='3000011']/plmxml_cl:Value"/>
</td>
</tr>
</for-each>
然而如上所示它不输出期望的代码。任何人都可以帮助我理解这一点,将不胜感激。如果需要任何其他信息,请通知我,我会立即提供。谢谢!
@ user678526 - 我已经给出了答案,但如果您提供示例输入(即您的实际源文档),我会更容易判断我是否正确。 – 2011-03-27 01:04:12
好问题,+1。请参阅我的答案以获取更多解释。 – 2011-03-27 15:49:16