Ich habe eine XML, wo ich bestimmte Elemente von allen Knoten auswählen muss. Die Struktur der eigentlichen XML sieht aus wie this-xslt zum Validieren eines Elementattributs eines Knotens oder nicht
<host>
<node>
<type>fruit1</type>
<value>10</value>
</node>
<node>
<type>fruit2</type>
<value>20</value>
</node>
<node>
<type>fruit3</type>
<value xsi:type="valueList">
<listValues>
<value>
<value>30</value>
<code>abc</code>
</value>
</listValues>
</value>
</node>
<node>
<type>fruit4</type>
<value>40</value>
</node>
<node>
<type>fruit5</type>
<value>50</value>
</node>
</host>
ich die Elemente wählen <type>
und <value>
von allen Knoten in einem Tabellenformat anzeigen. Der 3. Knoten hat Listenwerte für das Element <value>
und für dieses Element sollte der Wert 'true' sein. Die erwartete Ausgabe von XML ist wie folgt -
<html>
<body>
<table border="1">
<tr>
<td>fruit1</td>
<td>10</td>
</tr>
<tr>
<td>fruit2</td>
<td>20</td>
</tr>
<tr>
<td>fruit3</td>
<td>true</td>
</tr>
<tr>
<td>fruit4</td>
<td>40</td>
</tr>
<tr>
<td>fruit5</td>
<td>50</td>
</tr>
</table>
</body>
</html>
Die XSLT geschrieben ist als folgt-
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<xsl:for-each select="host/node">
<tr>
<td><xsl:value-of select="type" /></td>
<xsl:choose>
<xsl:when test = "//node/value/listValues/value/value != null">
<td>true</td>
</xsl:when>
<xsl:otherwise>
<td><xsl:value-of select="value" /></td>
</xsl:otherwise>
</xsl:choose>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Aber ich bin nicht in der Lage die gewünschte XML-Ausgabeformat zu erhalten. Jede Hilfe wäre ein großes Plus.
Hallo Rupesh, es arbeitet danken jetzt Sie. Gibt es eine Möglichkeit, den relativen Pfad für zu skripten, wenn wir mehrere Knoten wie Knoten 3 in der angegebenen XML haben? –
können Sie Als relativen Pfad verwenden –
Rupesh