Pouvez-vous utiliser <xsl:for-each> aller par le biais de ses attributs?
Est-il possible d'utiliser la commande sur les attributs? Je veux que ce soit en mesure d'exécuter sans connaître les noms d'attribut. Voici un rapide (mauvais) exemple:
<candy hard="true" soft="false" stripes="true" solid="false">
Dans ma tête (ce qui ne fonctionne pas), il devrait ressembler à quelque chose comme ceci:
<xsl:for-each select="candy/@[@='true']">
Est-il un moyen de contourner cela pour courir à travers des attributs sans connaître leur nom, ou dois-je écrire chaque attribut d'être regardé?
Modifier
Heres un exemple de moi en essayant de créer une variable en dehors du nom de l'attribut 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>
OriginalL'auteur user673869 | 2012-08-02
Vous devez vous connecter pour publier un commentaire.
OP commentaire:
Dans XSLT 2.0 simplement d'évaluer ce XPath (2.0) expression:
Vous êtes les bienvenus.
Dimitre - est-il possible de créer une variable de l'attribut nom au lieu de l'afficher? J'ai essayé de faire un <xsl:variable name="candytype"><xsl:value-of select="nom()" /></xsl:variable> mais ça ne fonctionne pas...
Oui, cette variable contient une séquence de chaînes de caractères, chaque chaîne étant le nom d'un attribut:
<xsl:variable name="vAttrNames" as="xs:string*" select="candy/@*[. = 'true']/concat(name(.), ' ')"/>
Dimitre - je crois que votre code est écrit pour XSLT 2.0. Pourriez-vous écrire un exemple pour la 1.0? Aussi, vous m'avez donné à ce site web comme un bon outil de référence pour l'une de mes questions précédentes: dpawson.co.uk/xsl/sect2/N5258.html. Est-il une autre qui permettrait de mieux expliquer ce que je suis en train d'accomplir? Merci!
OriginalL'auteur Dimitre Novatchev
Ce que vous voulez est
Pour sélectionner l'attribut les nœuds dont la valeur est vrai,
select="candy/@*[. = 'true']"
. Pour sélectionner ou de retour de leur noms est une longue réponse ... voir Dimitre de réponse.OriginalL'auteur LarsH