Xsl-Variable mit XML-Inhalt ausgeben

MS47475

Mitglied
Hallo,

ich habe eine XSL-Variable, in der ich ein paar XML-Daten gespeichert habe.
Jetzt möchte ich diese Daten in einer FOR-Schleife ausgeben.
Ich verwendet dazu PHP mit der XSL Version 1.0.

Hier mein Testszenario:
PHP:
<xsl:variable name="test">
	<meta>
		<a/>
		<b/>
		<c/>
	</meta>
</xsl:variable>
<xsl:for-each select="$test//*">
	<xsl:value-of select="name()"/>
</xsl:for-each>

Leider funktioniert der oben aufgeführte Code nicht mit der Fehlermeldung:
Code:
Failed to evaluate the 'select' expression
Ist das generell nicht möglich, oder habe ich da irgendwo ein Fehler gemacht?

Vielen Dank schon mal.

Gruß,
Markus
 
Hallo,

versuch es mal so
XML:
<xsl:for-each select="$test//*">
    <xsl:value-of select="."/>
</xsl:for-each>

MFG

zEriX
 
Zuletzt bearbeitet von einem Moderator:
Die Auswirkungist durch die Variable $test
ausgelöst ich vermutet das xpath nocht nicht vollständig
realisiert ist. der parser kann die variable nicht auflösen
 
Die Auswirkungist durch die Variable $test
ausgelöst ich vermutet das xpath nocht nicht vollständig
realisiert ist. der parser kann die variable nicht auflösen

Hmm, das kann natürlich sein.
Schade das die Entwicklung von PHP, hier libxml "langsam" von statten geht. Jetzt ist xpath 2.0 schon fast ein Jahr alt und xpath 1.0 wird (anscheinend?) noch nicht vollständig unterstützt.
Schade, weil man sich mit xslt 2 und xpath 2 eine Menge Arbeit sparen kann...
Langsam in Anführungszeichen, da es eigentlich klar ist, das es ein langwieriger Prozess ist.
 
Hi.
leider kann der schon mit der select-Anweisung in der for-each-Anweisung nichts anfangen...
Wenn du vorhast, alle Elemente unterhalb des meta Elements aus dem Stylesheet mit for-each zu durchlaufen wird das wohl nicht gehen. Laut XPath Recommendation 1.0 gibt es keinen Typ der in ein node-set konvertiert werden kann.

Gruß
 
Die Auswirkungist durch die Variable $test
ausgelöst ich vermutet das xpath nocht nicht vollständig
realisiert ist. der parser kann die variable nicht auflösen
Doch, auflösen kann der Parser die Variable schon, nur ist die Variable nicht vom Typ node-set.

Folgendes sollte ohne Probleme funktionieren:
XML:
<xsl:variable name="test" select="//irgendwas"/>
<xsl:for-each select="$test//*">
  <xsl:value-of select="name()"/>
</xsl:for-each>
Gruß
 
Zuletzt bearbeitet von einem Moderator:
Doch, auflösen kann der Parser die Variable schon, nur ist die Variable nicht vom Typ node-set.

Folgendes sollte ohne Probleme funktionieren:
XML:
<xsl:variable name="test" select="//irgendwas"/>
<xsl:for-each select="$test//*">
  <xsl:value-of select="name()"/>
</xsl:for-each>
Gruß

Ja, das funktioniert. Danke
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück