Ich möchte den Wert eines bestimmten Knotens abrufen, der durch das Attribut id
angegeben wird. Aber das Verhalten meines XSL-Parsers Saxon ist nicht so, wie ich es erwartet habe.Vergleichen von Attributwerten in XPath
Das ist mein XSL-Code:
<xsl:template match="synonyme">
<xsl:element name="corr">
<xsl:value-of select="@connecteur" />
<xsl:value-of select="/liste/connecteur[@[email protected]]/forme[1]" />
</xsl:element>
</xsl:template>
ich abgestimmt nur einen Tag mit dem Namen synonyme
, die ein connecteur
Attribut hat. Mein Code gibt den Wert dieses Attributs aus.
Ich möchte auch den Wert eines anderen Knotens ausgeben, der ein id
Attribut hat, das dem connecteur
Attribut meines aktuell übereinstimmenden Tags synonyme
entspricht. Aber für diese Abfrage werden nie Ergebnisse gefunden, die zweite value-of
hat immer eine leere Ausgabe.
Wenn ich z. [@id='c160']
, wo c160
ist genau die gleiche Sache, die von der ersten value-of
ausgegeben wird, funktioniert es! Aber nicht im Vergleich zum @attribute
meines passenden Knotens. Wie kann ich das beheben?
Die XML ist im Grunde
<liste><connecteur id="c160"><forme>foo</forme></connecteur>
<connecteur id="c161"><synonyme connecteur="c160" /></connecteur>
</liste>
und die erwartete Ausgabe anstelle des synonyme
ist <corr>c160 foo</corr>
.