2008-09-18 16 views
0

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 fait assez proche:Étant donné ce XML, existe-t-il un xpath qui me donnera les valeurs 'test' et 'name'?

..../xsl:template/xsl:choose/xsl:when 

Mais que tout retourne 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> 

Répondre

1

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 précisément xsl: when dans votre extrait ci-dessus. Si vous voulez qu'il correspond en général, vous pouvez utiliser:

.../xsl:template/xsl:choose/xsl:when/xsl:call-template/@name 
2

voulez-vous .../xsl:template/xsl:choose/xsl:when/@test

Si vous voulez réellement obtenir la valeur « Nom » de l'attribut de test, vous êtes hors de chance - le contenu à l'intérieur de l'attribut est juste une chaîne, et non un morceau de xml, donc vous ne pouvez pas le xpath. Si vous avez besoin d'obtenir cela, vous devez utiliser la manipulation de chaînes (par exemple, sous-chaîne) pour obtenir le bon contenu

+0

Oui c'est exactement ce que je cherche, et je sais que je ne peux pas analyser le nom de @ = valeur, je peux le faire après que je récupérer les données de mon opération xpath. Qu'en est-il de l'obtention de la valeur du nom à partir du modèle d'appel? merci! –

+0

En fait, je dois finir par avoir la valeur "handleColumn_1" en quelque sorte associée à la valeur "@ name = 'Prénom'" ... donc s'il y a quelque chose qui me rapproche de ça, ce serait génial. –