Sie können verwenden Sie <xsl:for-each - > gehen durch Attribute?
Ist es möglich mit dem Befehl Attribute? Ich möchte dies ausführen zu können, ohne zu wissen, die Namen der attribute. Hier ist eine schnelle (schreckliches) Beispiel:
<candy hard="true" soft="false" stripes="true" solid="false">
In meinem Kopf (das funktioniert nicht), sollte es wie folgt Aussehen:
<xsl:for-each select="candy/@[@='true']">
Gibt es einen Weg um diese herum zu laufen, durch Attribute, ohne zu wissen, Ihre Namen, oder muss ich schreiben jedes Attribut angeschaut?
Bearbeiten
Heres ein Beispiel von mir zu versuchen, erstellen Sie eine variable aus dem Attribut name value='true'
<xsl:for-each select="candy/@*[. = 'true']">
<xsl:attribute name="candytype">
<xsl:value-of select="name()"/>
</xsl:attribute>
<xsl:text> </xsl:text>
<xsl:for-each>
InformationsquelleAutor user673869 | 2012-08-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
OP ' s Kommentar:
In XSLT 2.0 einfach bewerten Sie diese XPath (2.0) Ausdruck:
Sie sind herzlich willkommen.
Dimitre - ist es möglich, erstellen Sie eine variable aus dem Attribut-Namen anstelle der Anzeige? Ich habe versucht zu tun, <xsl:variable name="candytype"><xsl:value-of select="name()" /></xsl:variable> aber es funktioniert nicht...
Ja, diese variable enthält eine Sequenz von strings, jeder string den Namen eines Attributs:
<xsl:variable name="vAttrNames" as="xs:string*" select="candy/@*[. = 'true']/concat(name(.), ' ')"/>
Dimitre - ich glaube, dein code ist geschrieben für XSLT 2.0. Schreiben Sie ein Beispiel für 1.0? Auch, Sie gab mir diese website als eine gute Referenz für eine meiner vorherigen Fragen: dpawson.co.uk/xsl/sect2/N5258.html. Gibt es eine andere, würde besser erklären, was ich versuche zu erreichen? Danke!
InformationsquelleAutor Dimitre Novatchev
Was Sie wollen, ist
Wählen Sie das Attribut - Knoten, deren Wert true ist, wird
select="candy/@*[. = 'true']"
. Zu wählen oder die Rückgabe von Namen ist eine längere Antwort ... siehe Dimitre Antwort.InformationsquelleAutor LarsH