[XSLT] 2 XML-Dokumente mit einer XSL Datei verarbeiten

Zatic

Erfahrenes Mitglied
Hallo,

ich hab eine Weile mit XSL rumgespielt und frage mich (und euch hiermit), ob man innerhalb einer XSL Datei eine zweite Quelldatei laden kann.

Bisher uebergebe ich dem Prozessor der libxslt Quelldokument und XSL Dokument und der arbeitet das ab, klar.
Ich wollte aber Teile aus dem Quelldokument und noch Teile aus einem anderen XML Dokument verarbeiten, praktisch 2 Quelldokumente mit einem XSL Template verarbeiten.

Ist so etwas moeglich?

Viele Gruesze,

Manuel
 
Ja, das ist möglich.
Es geht mit der document()-Funktion, mit der Du auf ein externes file zugreifen kannst.

z.B. mit
Code:
<xsl:apply-templates select="document('c.xml')//rowset"/>
...
  <xsl:template match="rowset">
       <!-- do something -->
  </xsl:template>

könntest Du ein file namens c.xml traversieren, hier werden alle rowset-nodes genommen. Es ist also normales X-Path möglich.
 

Zatic

Erfahrenes Mitglied
Wunderbar vielen Dank, genauso hatte ich mir das vorgestellt.

Noch eine Frage: gibt es irgendwelche Einschraenkungen, wo man diese Funktion anwenden kann, oder ist das durch das ganze XSL Dokument durchgehend moeglich?
Und zu was ist der Pfad in document(pfad) relativ? Zur XSL Datei, zum ausfuehrenden Programm?

Jedenfalls vielen Dank schon mal!
 
Nein es gibt keine Einschränkungen, Du kannst document() überall im xsl-file verwenden.
Soweit ich weiß, bezieht sich der Pfad relativ zu dem xslt-document, was document() aufruft. Zur Not teste einfach mal.
 

Neue Beiträge