Étant donné ce code XML, existe-t-il un xpath qui me donnera les valeurs 'test' et 'name'?
Question
Je dois obtenir la valeur de l'attribut "test" dans la balise xsl: when et l'attribut "name" dans la balise xsl: call-template. Ce xpath me rapproche beaucoup:
..../xsl:template/xsl:choose/xsl:when
Mais cela ne renvoie que les éléments "quand", pas les valeurs d'attribut exactes dont j'ai besoin.
Voici un extrait de mon XML:
<xsl:template match="field">
<xsl:choose>
<xsl:when test="@name='First Name'">
<xsl:call-template name="handleColumn_1" />
</xsl:when>
</xsl:choose>
La solution
Steve Cooper a répondu à la première partie. Pour la deuxième partie, vous pouvez utiliser:
.../xsl:template/xsl:choose/xsl:when[@test="@name='First Name'"]/xsl:call-template/@name
Qui correspondra spécifiquement à xsl: dans votre extrait de code ci-dessus. Si vous souhaitez que cela corresponde de manière générale, vous pouvez utiliser:
.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name
Autres conseils
voulez-vous ... / xsl: template / xsl: choisissez / xsl: quand / @ test
Si vous voulez réellement extraire la valeur 'Prénom' de l'attribut test, vous n'avez pas de chance - le contenu à l'intérieur de l'attribut est juste une chaîne, et non un morceau de xml, vous pouvez donc ' t xpath il. Si vous avez besoin d’obtenir cela, vous devez utiliser une manipulation de chaîne (par exemple, une sous-chaîne) pour obtenir le bon contenu