themaster Geschrieben 15. März 2004 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:
etreu Geschrieben 18. März 2004 Geschrieben 18. März 2004 warum kopierst du denn? setze doch data auf das element. damit bekommst du dann auch dein nodeset.
themaster Geschrieben 18. März 2004 Autor Geschrieben 18. März 2004 Wie? So? <xsl:variable name="data" select="/content/datasource/client"> Das funktioniert?
etreu Geschrieben 19. März 2004 Geschrieben 19. März 2004 So sollte es funtkionieren. So zeigt deine Variable auf ein NodeSet. Schon ausprobiert? Welchen XSLT-Prozessor nutzt du denn?
themaster Geschrieben 19. März 2004 Autor Geschrieben 19. März 2004 Nein, sitze im Moment in einem anderen Projekt. Ich benutze Xalan.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden