Ich habe einige xml, die etwa wie folgt aussieht:xslt Transformation untergeordnete Knoten in einen String zu kombinieren
<Lists>
<ListA>
<Item
name = "Name1"
ID = "ID1"
shoesize = "10">
<AddressList>
<Enum>City1</Enum>
<Enum>City2</Enum>
</AddressList>
</Item>
<Item
name = "Name2"
ID = "ID2"
shoesize = "13">
<AddressList>
<Enum>City3</Enum>
</AddressList>
</Item>
</ListA>
<ListB>
...
</ListB>
</Lists>
Ich brauche eine Transformation, die nur die Elemente in ListA auswählt und erzeugt eine einzige Zeile Rohr-separierte Text pro Stück, flacht aber auch die Adressen in einem Semikolon getrennte Liste wie folgt aus:
Name1|ID1|City1;City2
Name2|ID2|City3
Dies ist, was ich bisher getan haben:
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="Item"><xsl:value-of select="@name"/>|<xsl:value-of select="@ID"/>
<xsl:text>
</xsl:text>
</xsl:template>
<xsl:strip-space elements="*"/>
<xsl:output omit-xml-declaration="yes" indent="yes" />
</xsl:stylesheet>
Ich weiß nicht, wie man die AddressList überschleifen und in ein einzelnes Feld setzen kann. Ich möchte auch ListB ignorieren.
Ich bin mir sicher, dass dies grundlegende Dinge sind, aber ich weiß nicht xslt und alles, was ich gelesen habe, scheint ein gewisses Wissen anzunehmen ... plus ich kann keinen schnellen Anfängerführer finden, der mir genug zum Arbeiten gibt das heraus.
Bitte Posten ** gut ** gebildet Eingabebeispiel - eine, die ein einzelnes Stammelement und keine Leerzeichen in Elementnamen aufweist. –