當我使用爲什麼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