2017-06-05 2 views
0

Si les deux balises xml existent, je veux seulement que la sortie de la transformation se produise une seule fois. Est-ce possible?Sortie une fois si les deux balises xml se produisent en même temps

xsl

<xsl:template match="latitude | longitude"> 
    <generate_once>for both tags below</generate_once> 
</xsl:template> 

xml

<doc> 
<latitude /><longitude /> 
</doc> 
+0

Je veux m'excuser à l'avance si cela semble être une question invalide. – Rod

Répondre

1

ce modèle fera l'affaire ...?

<xsl:template match="latitude | longitude[not(../latitude)]"> 
    <generate_once>for both tags below</generate_once> 
</xsl:template> 

Cela fonctionne en faisant correspondre latitude si elle existe (peu importe qu'il y ait un longitude ou non). Il ne correspondra à longitude s'il n'y a pas latitude si. Ainsi, dans le cas où les deux sont présents, seul le latitude est associé.

+0

hmm, mon test initial dit "ça marche!" Pouvez-vous partager un aperçu à un débutant xslt quant à la façon dont cela fonctionne? Voyez-vous des mises en garde possibles? – Rod

+1

J'ai ajouté un peu plus d'explications à ma réponse. La réponse suppose que 'latitude' et' longitude' ont le même parent. –