themaster Geschrieben 15. März 2004 Teilen Geschrieben 15. März 2004 Hallo, ich habe ein Problem mit XML-Transformationen. Ich möchste einen Teilbaum in einer Variable speichern um den Inhalt später wieder lesen zu können. Es funktioniert aber überhaupt nicht. Die Fehlermeldung ist immer >> ERROR: Description: Expression must evaluate to a node-set. -->$data<--/message << Ich verstehe den Fehler nicht. Ich copiere doch einen Node-set (wege copy-of anstatt value-of) Wieos kann ich dann nicht auf die Unterelemente zugreifen. Anmerkung: Der Zugriff auf die Variable selbst funktioniert. Bisher habe ich soetwas: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:output method="xml" /> <xsl:variable name="currenttype" select="'idoc'"/> <xsl:variable name="currentclient" select="/content/rule-result/client"/> <xsl:variable name="data"> <xsl:for-each select="/content/datasource/client"> <xsl:if test="./name=$currentclient"> <xsl:if test="type=$currenttype"> <xsl:copy-of select="."/> </xsl:if> </xsl:if> </xsl:for-each> </xsl:variable> <xsl:template match="/"> <test><xsl:value-of select="$data/message"/></test> </xsl:template> </xsl:stylesheet> Die XML-Datei sieht so aus: <content> <!--cut--> <datasource> <client> <name>218</name> <type>bim</type> <mail>a@a.de</mail> <message>Nachricht1</message> </client> <client> <name>218</name> <type>idoc</type> <mail>b@b.de</mail> <mail>c@c.de</mail> <message>Nachricht2</message> </client> <client> <name>201</name> <type>idoc</type> <mail>d@d.de</mail> <message>Nachricht3</message </client> </datasource> </content> Kann mir irgendwer helfen? :confused: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 18. März 2004 Teilen Geschrieben 18. März 2004 warum kopierst du denn? setze doch data auf das element. damit bekommst du dann auch dein nodeset. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
themaster Geschrieben 18. März 2004 Autor Teilen Geschrieben 18. März 2004 Wie? So? <xsl:variable name="data" select="/content/datasource/client"> Das funktioniert? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 19. März 2004 Teilen Geschrieben 19. März 2004 So sollte es funtkionieren. So zeigt deine Variable auf ein NodeSet. Schon ausprobiert? Welchen XSLT-Prozessor nutzt du denn? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
themaster Geschrieben 19. März 2004 Autor Teilen Geschrieben 19. März 2004 Nein, sitze im Moment in einem anderen Projekt. Ich benutze Xalan. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.