fjh: XML Abspecken

Beitrag lesen

Hallo Alex,

ich versuche gerade XML Dateien per XSL zu verkleinern.
Das heisst, ich würde gerne überflüssige Einträge aus der XML Datei entfernen.
Beispiel:
<root>
   <bla id="5" irgendwas="toll">
     <keininhalt />
     <wichtigeInfo>Hier ganz wichtig</wichtig>
     <uninteressant />
   </bla>
</root>

Was hast du denn versucht und wo *genau* ist denn dein Problem?

Ich möchte also den Tag "keininhalt" und "uninterressant" und das attribut "irgendwas" entfernen.

Hat jemand vielleicht einen Denkansatz für mich, wie ich das am einfachsten anstellen kann?

Die Grundprinzipien dafür stehen alle hier:
http://selfhtml.teamone.de/xml/darstellung/xsltelemente.htm

Entscheidend für Dein Problem sind die Elemente xsl:copy und xsl:copy-of, mit denen du Knoten aus dem Quelldokument ins Ergebnisdokument kopieren kannst. handelt es sich bei dem Knoten um einen ganzen Baum (den Du auch ganz kopieren willst), musst du xsl:copy-of verwenden, ansonsten xsl:copy. Für dein konstruiertes Beispiel wäre eine mögliche Lösung:

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:template match="root">

xsl:copyxsl:apply-templates/</xsl:copy>

</xsl:template>

<xsl:template match="wichtigeInfo">

xsl:copy<xsl:value-of select="."/></xsl:copy>

</xsl:template>

</xsl:stylesheet>

Gruß
Franz