URL: https://linuxfr.org/forums/programmationautre/posts/xml-ajouter-un-nouveau-noeud-autour-d-un-noeud-existant
Title: XML : ajouter un nouveau nœud autour d'un nœud existant
Authors: Obsidian
Date: 2013-09-21T18:44:38+02:00
License: CC By-SA
Tags:
Score: 0
Bonjour à tous,
Je suis en train de faire un script pour éditer automatiquement un grand nombre de fichiers HTML comme du XML avec _xmllint_ et _xmlstarlet_ pour extraire le contenu qui m'intéresse, les mettre en forme grâce à une CSS de mon propre cru, et imprimer le tout de manière lisible pour être lu devant une assemblée.
J'aimerais savoir s'il existe un outil et/ou une commande permettant simplement d'ajouter un nœud autour d'un nœud existant, de manière à ce que ce dernier devienne le fils de ce nouveau nœud. Plus précisément, j'ai actuellement ceci :
```html
Donnée 1 |
Donnée 2 |
Donnée 3 |
Donnée 4 |
Donnée 5 |
Bas de table |
```
et je voudrais obtenir ceci :
```html
Donnée 1 |
Donnée 2 |
Donnée 3 |
Donnée 4 |
Donnée 5 |
Bas de table |
```
J'arrive facilement à extraire le contenu des tables grâce à des chemins XPath et même à référencer leurs parents mais je ne sais pas s'il est possible d'auto-référencer un nœud lorsque l'on précise le chemin de destination.
Le problème est que j'ai potentiellement plusieurs tables consécutives au sein du même document. Quand il n'y en a qu'une seule, je peux créer un nœuds « tfoot » dans « `//tr[@class='pieddetable']/..` » puis déplacer « `//tr[@class='pieddetable']` » vers « `//tfoot` » mais quand il y en a plusieurs, il n'y bien sûr plus de relation pair à pair entre les deux balises.
Merci à tous pour votre aide.