Hallo zusammen!
Ich habe folgendes Problem:
Teile einer XML müssen kopiert werden, was im Grunde mit dem Befehl copy-of ginge. Problem: Leere Knoten wie
werden genauso kopiert. Es ist allerdings ein Ergebnis erwünscht, bei dem die leeren Knoten so dargestellt werden würden:
das ist unbedingt wichtig.
Wahrscheinlich gehe ich wieder den schwierigen weg, aber ich mache Folgendes: an der entsprechenden Stelle wird ein template "copy" aufgerufen:
was ich erreichen möchte ist, dass bei vorhandenen Kinderelementen das template so oft aufgerufen wird, bis alle Kinder samt Inhalt kopiert worden sind. Es geht wirklich nur ums kopieren, zum Testen kann eine beliebige XML genommen werden.
Ich wollte das so lösen, dass ich nach dem Namen des Kindes frage, ob es nicht leer ist. Was ja bedeuten würde, ob es ein Kindelement gibt... Aber irgendwo habe ich anscheinend einen Denkfehler.
Ich bekomme es nicht hin, dass die Unterknoten richtig kopiert werden. Bei unterschiedlichen Variationen mit dem dargestellten template schaffe ich es alle Knoten ohne Inhalt zu Kopieren, oder Knoten und Inhalt einfach in einer Zeile hintereinander, aber nicht einfach die vorhandene Datei.
Wie gesagt, das template soll im Grunde die Funktion eines copy-of haben nur werden aus "gestückelten" leeren Elementen hier "einzelne" leere erstellt.
Vielen Dank für jeden Hinweis im Voraus!!
Ich habe folgendes Problem:
Teile einer XML müssen kopiert werden, was im Grunde mit dem Befehl copy-of ginge. Problem: Leere Knoten wie
Code:
<node>
</node>
Code:
<node/>
Wahrscheinlich gehe ich wieder den schwierigen weg, aber ich mache Folgendes: an der entsprechenden Stelle wird ein template "copy" aufgerufen:
Code:
<xsl:template name="copy">
<xsl:copy copy-namespaces="no">
<xsl:copy-of select="@*[not(contains(name(.), 'xmlns:xsi'))]" copy-namespaces="no"/>
<xsl:choose>
<xsl:when test="name(descendant)!='' ">
<xsl:call-template name="copy"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:copy>
</xsl:template>
Ich wollte das so lösen, dass ich nach dem Namen des Kindes frage, ob es nicht leer ist. Was ja bedeuten würde, ob es ein Kindelement gibt... Aber irgendwo habe ich anscheinend einen Denkfehler.
Ich bekomme es nicht hin, dass die Unterknoten richtig kopiert werden. Bei unterschiedlichen Variationen mit dem dargestellten template schaffe ich es alle Knoten ohne Inhalt zu Kopieren, oder Knoten und Inhalt einfach in einer Zeile hintereinander, aber nicht einfach die vorhandene Datei.
Wie gesagt, das template soll im Grunde die Funktion eines copy-of haben nur werden aus "gestückelten" leeren Elementen hier "einzelne" leere erstellt.
Vielen Dank für jeden Hinweis im Voraus!!
Comment