ThomasM: Zwei XML Dateien mit einem XSLT Dokument bearbeiten?

Beitrag lesen

Hallo,

Oder gibt es eine Möglichkeit die Baumstruktur des zweiten XML Dokumentes in einer globalen Variable oder Parameter vorzuhalten und darin zu navigieren und den Inhalt wie ein eigenes Dokument zu ändern? Sprich mit Templates darauf zu arbeiten?

Ansatz mit xsl:document aus XSLT 2.0:

test1.xml:

<?xml version="1.0" encoding="UTF-8"?>  
<test1>  
  <bla>1</bla>  
</test1>

test2.xml:

<?xml version="1.0" encoding="UTF-8"?>  
<test2>  
  <blub>2</blub>  
</test2>

test.xsl (auf test1.xml anwenden):

<?xml version="1.0" encoding="UTF-8"?>  
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>  
  
  <xsl:variable name="extern">  
    <xsl:document>  
      <xsl:copy-of select="document('test2.xml')"/>  
    </xsl:document>  
  </xsl:variable>  
  
  <xsl:template match="test1">  
    <out>  
      <bla_out><xsl:value-of select="bla"/></bla_out>  
      <blub_out><xsl:value-of select="$extern/test2/blub"/></blub_out>  
    </out>  
  </xsl:template>  
  
</xsl:stylesheet>

Ergebnis:

<?xml version="1.0" encoding="UTF-8"?>  
<out>  
  <bla_out>1</bla_out>  
  <blub_out>2</blub_out>  
</out>

Soll der eingelesene externe Baum verändert ausgegeben werden, dann diese Struktur entsprechend transformieren und mittels xsl:result-document in eine Datei schreiben.

Grüße,
Thomas