Hallo,
ich habe unten folgende Dateien sowie Ausgabe und die gewünschte Ausgabe zusammengestellt, ich hab keine Ahnung warum das nicht funktioniert. Hoffe hier kann mir jemand helfen.
XML-File:
Ergebnis:
Ich weiss nichtmehr was ich noch probieren soll, finde keine Lösung. Sobald ich aus der XML das xmlns im Document Tag entferne, funktioniert es ohne Probleme, kann aber die XML leider nicht verändern.
Edit:
Mal wieder zu früh geschrien. Die Lösung ist den Namespace vor jedem Element aus dem XML-Dokument im XSLT-File anzugeben.
Die XSLT muss also so aussehen:
Alles anzeigen
ich habe unten folgende Dateien sowie Ausgabe und die gewünschte Ausgabe zusammengestellt, ich hab keine Ahnung warum das nicht funktioniert. Hoffe hier kann mir jemand helfen.
XML-File:
Quellcode
- <?xml version="1.0" encoding="UTF-8" standalone="no"?>
- <Document xmlns="<xsl:for-each select="Category/list/dict/array/dict">
- <xsl:element name="list">
- <xsl:element name="name"><xsl:value-of select="value[1]" /></xsl:element>
- <xsl:element name="version"><xsl:value-of select="value[2]" /></xsl:element>
- </xsl:element>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
- </xsl:stylesheet>
Ergebnis:
Ich weiss nichtmehr was ich noch probieren soll, finde keine Lösung. Sobald ich aus der XML das xmlns im Document Tag entferne, funktioniert es ohne Probleme, kann aber die XML leider nicht verändern.
Edit:
Mal wieder zu früh geschrien. Die Lösung ist den Namespace vor jedem Element aus dem XML-Dokument im XSLT-File anzugeben.
Die XSLT muss also so aussehen:
Quellcode
- <?xml version="1.0" encoding="UTF-8"?>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:myxml="http://www.somesite.com/myxml/">
- <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
- <xsl:template match="/myxml:*">
- <xsl:element name="lists">
- <xsl:for-each select="myxml:Category/myxml:list/myxml:dict/myxml:array/myxml:dict">
- <xsl:element name="list">
- <xsl:element name="name"><xsl:value-of select="myxml:value[1]" /></xsl:element>
- <xsl:element name="version"><xsl:value-of select="myxml:value[2]" /></xsl:element>
- </xsl:element>
- </xsl:for-each>
- </xsl:element>
- </xsl:template>
- </xsl:stylesheet>
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von FelixD ()