Hallo,
welche Möglichkeiten gibt es, um aus einer
<xsl:for-each select="document(........)/......">
wieder "rauszukommen" und den Wert mitnehmen.
Keine (um rauszukommen und einen Wert mitzunehmen).
Also beispielhaft ich ermittle die ausgabe von bestimmten elementen im erstenfile.xml über eine abfrage von attributwerten in bestimmter reihenfolge aus einem anderen file (zweitesfile.xml)
<xsl:for-each selet="document(zweitesfile.xml)/root/liste>
<xsl:value-of select="@attribute1"/>
<xsl:value-of select="@attribute2"/>
<xsl:value-of select="@attributeID"/>
</xsl:for-each>
Jetzt werden mir drei Werte für jeden Durchgang angegeben, ich würde aber gerne noch einen vierten hinzufügen, welcher sich in abhängigkeit von dem attributewert aus dem eigentlich zu parsenden dokument ergibt.
Eine Möglichkeit wäre z.B.:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="firstRoot" select="/" />
<xsl:for-each selet="document(zweitesfile.xml)/root/liste>
<xsl:variable name="myVar" select="@attributeID"/>
<xsl:value-of select="@attribute1"/>
<xsl:value-of select="@attribute2"/>
<xsl:value-of select="@attributeID"/><xsl:value-of select="wert[@wertID=@attributeID]"/>
<xsl:for-each selet="$firstRoot/root/wert[@wertID = $myVar]>
<xsl:value-of select="."/>
</xsl:for-each>
</xsl:for-each>
Mir ist klar, dass der vierte Wert so nicht abgefragt werden kann, da sich die for-each ja auf den knoten document(.... bezieht. Wie kann man es aber schaffen?
Grüße
Thomas