fra@ma: XSLT Zugriff auf Elemente von extern eingebunden XML-Daten

Beitrag lesen

Hallo,
ich verzweifel gerade an meinen ersten XSL-Versuchen.
Ich möchte durch Vorgaben einer XML-Seitenstruktur (xml01), die mit XSLT verarbeitet wird, eine externe XML-Datei (xml02) einbinden.
Leider finde ich keine Lösung, wie ich auf die Elemente in xml02 zur Laufzeit zugreifen kann.
Ich habe schon alle möglichen Dinge probiert und gelesen aber nichts bringt mich weiter.
Kann mir bitte mal jemand auf die Sprünge helfen?

Hier mal das Beispiel:

--xml01-- (Seitenstruktur)

  
<?xml version="1.0" encoding="utf-8"?>  
<?xml-stylesheet type="text/xsl" href="testen.xsl" ?>  
<site:seiten xmlns:site="http://test.tt/site">  
	<site:seite param="start">  
		<site:linkname>Startseite</site:linkname>  
		<site:url>test.htm</site:url>  
		<site:inhalt url="testinhalt01.xml" />  
	</site:seite>  
	<site:seite param="programm">  
		<site:linkname>Programm</site:linkname>  
		<site:url>programm.htm</site:url>  
		<site:inhalt url="testinhalt02.xml" />  
	</site:seite>  
</site:seiten>  

--xml02-- (extere XML-Datei)

  
<?xml version="1.0" encoding="utf-8"?>  
<in:inhalt xmlns:in="http://test.tt/inhalt">  
	<in:head>  
		<meta name="robots" content="index, follow" />  
	</in:head>  
	<in:body>  
		<in:block>  
			<in:bild url="testbild01.jpg" alt="Teste Bild 01" />  
			<in:bild url="testbild02.jpg" alt="Teste Bild 02" />  
		</in:block>  
		<in:text>  
			Ein Text zum Testen  
		</in:text>  
	</in:body>  
</in:inhalt>  

--xsl--

  
<?xml version="1.0" encoding="utf-8"?>  
<xsl:stylesheet version="1.0"  
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"  
    xmlns:site="http://test.tt/site"  
    xmlns:in="http://test.tt/inhalt">  
	  
	<xsl:output doctype-system="about:legacy-compat" method="html" indent="yes"/>  
	  
	<xsl:template match="/">  
		<xsl:for-each select="site:seiten/site:seite[@param = $aktuell]">  
  
        	<!-- _____________________ Externe Daten importieren  -->  
            <xsl:if test="site:inhalt/@url != ''">  
                <xsl:variable name="extern_xml" select="document(site:inhalt/@url)" />  
            </xsl:if>  
  
  
			<html lang="de">  
				<head>  
					<meta charset="utf-8" />  
					<title>  
                    	<xsl:value-of select="site:linkname" />  
                    </title>  
                    <xsl:value-of select="$extern_xml/in:inhalt/in:head" />  
				</head>  
				<body>  
					<div id="seitenAufbau">  
                    	<xsl:call-template name="hauptnavigation" />  
                        <xsl:call-template name="inhalt_extern" />  
                    </div>  
				</body>  
        	</html>  
		</xsl:for-each>  
	</xsl:template>  
  
    <xsl:template name="hauptnavigation">  
        <nav id="hauptnavigation">  
            <ul>  
                <xsl:for-each select="/site:seiten/site:seite">  
                    <li>  
                        <a>  
                            <xsl:attribute name="href">  
                                <xsl:value-of select="site:url" />  
                            </xsl:attribute>  
                            <xsl:value-of select="site:linkname" />  
                        </a>  
                    </li>  
                </xsl:for-each>  
            </ul>  
        </nav>  
    </xsl:template>  
  
    <xsl:template name="inhalt_extern">  
    	<xsl:value-of select="$extern_xml/in:inhalt/in:body" />  
    </xsl:template>  
</xsl:stylesheet>  

Geparst wird dies mit PHP XSLTProcessor, von da wird auch die Variable $aktuell übergeben.
Leider ist es ja nicht möglich mit <xsl:template match=Variable zu zugreifen.
Mit xsl:copy-of habe ich auch schon experimentiert, allerdings kopiere ich da ja nicht in das Ausgangs-XML sondern in das Ergebnis-XML.
Ich stehe echt auf dem Schlauch.

Vielen Dank vorab!