Когда я использую
<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 будет две строки. Ниже приводится вывод из второго сценария, в котором все, что я сделал, взяло plm:ProductRevision
из значения for-each
select и добавило его в начало оператора 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>
Однако, как показано выше, он не выводит желаемый код. Все, что кто-либо может сделать, чтобы помочь мне понять это, будет с благодарностью. Если требуется какая-либо дополнительная информация, пожалуйста, сообщите, и я предоставлю ее немедленно. Спасибо!