Ich weiß, dass die Frage bereits mehrfach beantwortet wurde, aber aus irgendeinem Grund funktioniert nicht für mich. Also, was ich erreichen will ist, den Inhalt eines Elements zur Ausgabe durch die Verwendung es Attributwert ist, darauf zuzugreifen, sondern einen bestimmten Wert für das Attribut deklarieren wie:
<xsl:value-of select="title[@attribute='value']"/>
Das für meine Code funktioniert, aber ich will verwenden, um eine Variable wie: was
<xsl:value-of select="title[@attribute='$variable']"/>
aber egal, ich oder die verschiedenen Möglichkeiten, wie ich versuche, es wie:
<xsl:value-of select="//title[@attribute='$variable']"/>
oder 0
<xsl:value-of select="//title[@attribute= $variable]"/>
hat ouptut nichts und ich bekomme keine Fehler von Saxon so dass ich keine Ahnung habe, was los ist.
XML-Datei
<root>
<documentname>
<element>text</element>
.
.
<element1 atributename1="VALUE1">text</element1>
.
.
<element95 atributename1="value1" secondatribute="0001"/>
.
.
</documentname>
</root>
xsl Datei
<xsl:template match="element95 ">
<xsl:choose>
<xsl:when test="@atributename1">
<xsl:variable name="keyb" select="substring(@secondatribute,1,4)"/>
<xsl:variable name="keyval" select="substring(@atributename1, 0,6)" />
<xsl:variable name="keyc">
<xsl:value-of select="'upper-case($keyval)'"/></xsl:variable>
<a href="#{$keyc}"><xsl:value-of select="($keyb)"/>.0(<xsl:value-of select="//element1 [@atributename1=($keyc)]"/>)</a>
</xsl:when>
</xsl:choose>
Ausgang:
1.0()
gewünschte ouput:
1.0(text)
Keine von diesen kompilieren für mich, ']' fehlt. – biziclop
Können Sie bitte ein minimales XSL-Stylesheet und ein Testdokument einbeziehen, das dieses Problem verursacht? – biziclop
@Eugenios Ihr letzter Ausschnitt sieht gut aus, also ist es unmöglich zu sagen, was falsch war, ohne das minimale, aber vollständige Beispiel zu sehen, das das Problem demonstriert – har07