Tiki: Von result-document und tag-löscherei

Hi liebe foruminatoren,

ich bin Neuling im xsl-Wunderland und hab ein Problem, dass durch eine vorige Lösung (!) eines anderen Problems entstanden ist..

Ich habe eine XML-Datei mit einer einfachen Struktur ala

Kunden -> Kunde -> Element a, Element b, Element Notizen(!), Element n,..

Ich habe eine xsl-Lösung zusammengebastelt die mir das Element "Notizen" in allen "Kunde"-Elementen löscht..

  
<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">  
<xsl:output method="xml" />  
  
<xsl:template match="node()|@*">  
  
<xsl:copy>  
<xsl:apply-templates select="node()|@*" />  
</xsl:copy>  
  
</xsl:template>  
  
<xsl:template match="NOTIZEN" />  
  
</xsl:stylesheet>  

Das ganze funkioniert auch wunderbar, nach dem Proz.-Aufruf erzeugt er mir eine saubere XML-Datei ohne das "Notizen"-Element (oder dessen Unterelemente)

Jetzt wollte ich aber dass mir das xsl auch die Datei direkt erzeugt mit
<xsl:result-document ...>

als gebührender Neuling habe ich natürlich erstmal fröhlich versucht, das ganze per try&error einzubauen, wurde aber durch fehlermeldungen erschlagen. Dann hab ich mir das ganze result-gedönse mal genauer angeschaut und jetzt habe ich noch weniger Plan wie ich das in mein kleines xsl-chaos einbaue damit er mir wirklich die Datei aus dem xsl heraus erstellt.

Kann mir vielleicht jemand bei diesem kleinen Problem helfen (?)

Vielen Dank auch schonmal fürs durchlesen :)

  1. Hallo Tiki,

    Jetzt wollte ich aber dass mir das xsl auch die Datei direkt erzeugt mit
    <xsl:result-document ...>

    Probiere es mit diesem Ansatz:

    <?xml version="1.0" encoding="UTF-8"?>  
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">  
      
      <xsl:output method="xml"/>  
      
      <xsl:template match="/">  
        <xsl:result-document href="ausgabe.xml">  
          <xsl:call-template name="haupt"/>  
        </xsl:result-document>  
      </xsl:template>  
      
      <xsl:template match="node()|@*" name="haupt">  
        <xsl:copy>  
          <xsl:apply-templates select="node()|@*"/>  
        </xsl:copy>  
      </xsl:template>  
      
      <xsl:template match="NOTIZEN"/>  
      
    </xsl:stylesheet>
    

    Grüße,
    Thomas

    1. Probiere es mit diesem Ansatz:

      Hallo Thomas,

      danke für deine schnelle Antwort..
      Ich habe es dementsprechend umgebaut, ich kriege zumindest keine Fehlermeldung mehr aber dafür wird auch keine Ausgabe mehr erzeugt, sprich weder Inhalt im Vorschaufenster noch die Datei wird erzeugt.

      Ich schreib dir nochmal kurz den Aufbau der xml (eigentlich nicht wirklich komplex)

        
      <KUNDEN>  
        <KUNDE>  
          <ID>1</ID>  
          <NOTIZEN>Text</NOTIZEN>  
        </KUNDE>  
        <KUNDE>  
        ...  
        </KUNDE>  
      <KUNDEN>  
      
      

      Funktioniert bei dir die result-document-Ausgabe mit deinem xsl?
      Ich benute den Saxon9.3.0.8 parser falls das relevant sein sollte.

      Dennoch schonmal vielen Dank für die Hilfe (zumindest die Fehlermeldungen sind History :)  )

      Gruß
      Tiki

      1. Hallo Tiki,

        Funktioniert bei dir die result-document-Ausgabe mit deinem xsl?
        Ich benute den Saxon9.3.0.8 parser falls das relevant sein sollte.

        Ja, mit Saxon 9.4.0.4 und auch mit AltovaXML 2013. Evtl. mal Dateinamen mit komplettem Pfad angeben, könnte sonst in einem Temp-Verzeichnis landen.

        Grüße,
        Thomas