Wie kann man auf den untergeordneten Knoten des übergeordneten Knotens 1 vom untergeordneten Knoten des übergeordneten Knotens 2 in XSLT zugreifen?
<Test>
<SOLUTIONS>
<SOLUTION>
<OBSERVATIONS>
<OBSERVATION Key = "1ASED">A1</OBSERVATION>
<OBSERVATION Key = "2DFED">A2</OBSERVATION>
<OBSERVATION Key = "3DGEE">A3</OBSERVATION>
</OBSERVATIONS>
<ITRs>
<ITR Key = "ASE1">P1</ITR>
<ITR Key = "GGEE1">P2</ITR>
<ITR Key = "GERFECE1">P3</ITR>
</ITRs>
</SOLUTION>
<SOLUTION>
<OBSERVATIONS>
<OBSERVATION Key = "ABCD">A1</OBSERVATION>
<OBSERVATION Key = "EFGH">A2</OBSERVATION>
<OBSERVATION Key = "IJKL">A3</OBSERVATION>
</OBSERVATIONS>
...
</SOLUTION>
</SOLUTIONS>
</Test>
Für jeden ITR muss die Beobachtung gedruckt werden. Für den ersten ITR muss ich den Schlüssel dieses Datensatzes mit dem Schlüssel der Beobachtung verknüpfen. Es sollen also insgesamt 9 Datensätze angezeigt werden.
Mein XSLT lautet
<xsl:for-each select="/Test/SOLUTIONS/SOLUTION">
<xsl:for-each select="ITRs/ITR">
<xsl:variable name="Key_ITRPS" select="@Key"/>
<xsl:for-each select="/Test/SOLUTIONS/SOLUTION/OBSERVATIONS/OBSERVATION">
<xsl:variable name="srcKey_A" select="@Key"/>
<xsl:element name="Relationship">
<xsl:attribute name="RelCommonKey">
<xsl:value-of select="concat($Key_ITRPS,$srcKey_A)"/>
</xsl:attribute>
</xsl:element>
</xsl:for-each>
</xsl:for-each>
</xsl:for-each>
Die gewünschte Ausgabe lautet
RelCommonKey
ASE11ASED
ASE12DFED
ASE13DGEE
GGEE11ASED
GGEE12DFED
GGEE13DGEE
GERFECE11ASED
GERFECE12DFED
GERFECE13DGEE
Das Problem, dem ich hier gegenüberstehe, ist, dass ich neben den oben genannten Daten auch den Beobachtungsschlüssel in der zweiten Zeile bemerke.
der ITR-Schlüssel "ASE1" ist auch mit "ABCD, "EFGH", "IJKL" verknüpft. Bitte helfen Sie mir, die Daten wie oben angezeigt einzuschränken.