Ich muss eine XSLT-Datei verwenden, um ein XML in CSV umzuwandeln. Das ist einfach genug.XSLT einen eindeutigen Knoten zählen
Ich muss auch verschiedene Werte von einem Knoten zählen und sie in jede Zeile einfügen. Das weiß ich nicht, was ich machen soll.
Der Knoten, den ich zählen muss, können Sie im folgenden Beispiel sehen. Es heißt < Id>.
Ich möchte grundsätzlich alle IDs, die eindeutig sind, zählen und das Ergebnis in jeden Bestellposten einfügen.
Seit meinem Beispiel haben zwei < id> Knoten mit dem Wert 1 und ein < id> Knoten mit dem Wert 4, wären das Ergebnis 2.
Vielen Dank im Voraus, überhaupt für jede Hilfe.
XML:
<?xml version="1.0" encoding="utf-8"?>
<Picked xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<OrderLines>
<OrderLine>
<OrderId>1345
</OrderId>
<Missions>
<Mission>
<ContainerIds>
<Container>
<Id>1
</Id>
</Container>
</ContainerIds>
</Mission>
</Missions>
</OrderLine>
<OrderLine>
<OrderId>13456
</OrderId>
<Missions>
<Mission>
<ContainerIds>
<Container>
<Id>1
</Id>
</Container>
</ContainerIds>
</Mission>
</Missions>
</OrderLine>
<OrderLine>
<OrderId>134567
</OrderId>
<Missions>
<Mission>
<ContainerIds>
<Container>
<Id>4
</Id>
</Container>
</ContainerIds>
</Mission>
</Missions>
</OrderLine>
</OrderLines>
</Picked>
Wunschergebnis:
Orderid;Id
1345;2
13456;2
134567;2
XSLT so weit:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:msxsl="urn:schemas-microsoft-com:xslt" exclude-result-prefixes="msxsl">
<xsl:output method="text" encoding="UTF-8"/>
<xsl:template match='/'>
<xsl:text>Orderid;Id</xsl:text>
<xsl:text> </xsl:text>
<xsl:for-each select="/Picked/OrderLines/OrderLine">
<xsl:value-of select="OrderId"/>
<xsl:text>;</xsl:text>
<xsl:value-of select="Missions/Mission/ContainerIds/Container/Id"/>
<xsl:if test="position()!=last()">
<xsl:text> </xsl:text>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
Mein Ergebnis bisher:
Orderid;Id
1345;1
13456;1
134567;4
Welche XSLT-Prozessor werden Sie verwenden? –
Ich werde XSLT 1.0 verwenden – stianzz
Aber welcher spezielle Prozessor? Einige unterstützen eine 'distinct()' Erweiterungsfunktion. –