XSLT: contains() pour plusieurs chaînes de caractères
J'ai une variable XSLT appelé variable_name
qui je suis en train de mettre à 1
, si le Produit en question a des attributs avec le nom de A ou B ou les deux A & B.
<xsl:variable name="variable_name">
<xsl:for-each select="product/attributes">
<xsl:if test="@attributename='A' or @attributename='B'">
<xsl:value-of select="1"/>
</xsl:if>
</xsl:for-each>
</xsl:variable>
Est-il de toute façon à correspondre à de multiples cordes à l'aide de l'instruction si, comme moi, juste des matchs si l'Un est présent ou B est présent. Si les deux A & B sont présents, il ne permet pas de définir la variable à 1. Toute aide serait appréciée comme je suis un newbie dans XSLT.
- Comment est-ce que votre XML lorsqu'ils sont "à la fois Un & B sont présents"?
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser xsl:choisissez l'énoncé, c'est quelque chose de basculer dans des langages de programmation:
Exemple:
Ceci permettra de définir de nouvelles variables avec le nom variable_name avec la valeur de l'attribut de produit/attributs.
Pour plus d'info ... http://www.w3schools.comwww.w3schools.com/xsl/el_choose.asp
EDIT: Et une autre façon (un peu sale) par demande du commettant:
Il sera utile si vous fournir le xml que vous êtes en train de rédiger votre xslt contre.
Cela pourrait ne pas aider...
C'est "légal" d'avoir deux attributs élément XML avec le même nom (par exemple.
<element x="1" x="2" />
)?Est-ce que vous essayez de processus? Essayer de parser le fichier XML par le biais de xmllint ou quelque chose comme ça pour voir si elle est valide.
Ma conjecture est que vous obtiendrez un "attribut redéfini' erreur.