2
J'ai un peu de Xml qui ressemble à ceci:Comment ajouter un attribut spécifique à chaque noeud dans un fichier Xml en utilisant Xsl?
<books>
<book id="1">
<name>My book</name>
<author>My author</author>
</book>
<book id="2">
<name>My other book</name>
<author>My other author</author>
</book>
</books>
Je voudrais avoir ressembler à:
<books>
<book id="1">
<name id="1">My book</name>
<author id="1">My author</author>
</book>
<book id="2">
<name id="2">My other book</name>
<author id="2">My other author</author>
</book>
</books>
Quelqu'un pourrait-il me diriger dans la bonne direction?
+1 pour la réponse exacte. Je n'ai qu'un seul problème avec votre style d'écriture: il est toujours préférable de ne pas utiliser un axe inverse, si possible, dans une expression XPath et en particulier dans les motifs de correspondance. Au lieu de '* [../@ id]' on peut écrire: '* [@ id]/*'. Non seulement c'est plus court, mais c'est beaucoup plus compréhensible. –
@Dimitre - Merci pour la suggestion. Il lit plus facilement de cette façon. Savez-vous si les instructions XPATH de l'axe avant sont généralement plus performantes ou est-ce surtout une question de style/convention? –
En outre, si vous associez le dernier attribut pour un élément dont le père a @id, vous pouvez réduire le modèle à seulement deux 'copy' –