Carsten: XSLT Zwischenspeicher?

Beitrag lesen

Hallo Thomas,

um auf <blabla> zugreifen zu können:
document('root.xml')/bla/blabla

Das sollte doch nicht mehr das Problem sein nachdem ich | angewandt habe?

Das | ist das 'union operator', d.h. es werden die selektierte Kontensets vermengt und die duplikate gelöscht.

Offenbar krieg ich es nicht hin den gemischten Kontent zu sortieren, weil nach dem Mischen ein Knoten dazu fehlt oder ich den nicht kenne und das Schema 'root... ' nicht übertragen kann.

Du kannst dir die Seite unter http://www.dpawson.co.uk/xsl/sect2/N2602.html ansehen, dort geht es fast immer und die Frage wie man mehrere XML-Dateien mit einer XSL behandelt.

Da hatte ich schon gesucht und nichts passendes gefunden.

Sonst wüsste ich nicht, wie ich dir noch helfen könnte.

Du sollst ja gar nicht meine "Hausaufgaben" machen, aber vielleicht könntest dir das ja nochmal kurz anschauen ob du den oder die "Knoten" findest.

Die eins.xml und zwei.xml würden wohl als reale Daten mehr Elementebenen haben, z.B.
 <adressen>
            <person><name> Meyr </name>
                    <telefon> 04711 </telefon>
             </person>
Ausserdem ist jetzt gerade noch ein Fehler drin der deutlich macht dass der Teil mit dem 'union operator' entweder doppelt aufgerufen wird, oder nicht richtig ausgeführt wird, mal ergibt die Anzeige
-wa -- wc -- wb -- w1 -- w5 -- w3 -- w2 -- w4 -, dann (falls es nicht ein browsertypischer Effekt beim Reload ist)

  • w5 -- w3 -- w2 -- w4 -- wa -- wc -- wb -- w1 -

test.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<?xml-stylesheet type="text/xsl" href="test.xsl"?>
 <F_F>
 </F_F>

test.xsl:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/F_F">
<html><body><h1>Test</h1>
<xsl:apply-templates select="document('zwei.xml')//A_A/W_W|document('eins.xml')//A_A/W_W"/>
</body>
</html>
</xsl:template>
<xsl:template match="W_W">
<xsl:for-each select=".">
<xsl:sort select="."/>
<div>-
<xsl:value-of select="." />
-</div>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

eins.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<A_A>
 <W_W> w5 </W_W>
 <W_W> w3 </W_W>
 <W_W> w2 </W_W>
 <W_W> w4 </W_W>
</A_A>

zwei.xml:

<?xml version="1.0" encoding="iso-8859-1"?>
<A_A>
 <W_W> wa </W_W>
 <W_W> wc </W_W>
 <W_W> wb </W_W>
 <W_W> w1 </W_W>
</A_A>

Grüsse + Dank,

Carsten