XML DOM Ajouter des nœuds
Essayez-le vous-même - Exemples
Les exemples ci-dessous utilisent le fichier XML books.xml .
Cet exemple utilise appendChild() pour ajouter un nœud enfant à un nœud existant.
Cet exemple utilise insertBefore() pour insérer un nœud avant un nœud enfant spécifié.
Cet exemple utilise la méthode setAttribute() pour ajouter un nouvel attribut.
Cet exemple utilise insertData() pour insérer des données dans un nœud de texte existant.
Ajouter un nœud - appendChild()
La méthode appendChild() ajoute un nœud enfant à un nœud existant.
Le nouveau nœud est ajouté (ajouté) après tous les nœuds enfants existants.
Remarque : Utilisez insertBefore() si la position du nœud est importante.
Ce fragment de code crée un élément (<edition>) et l'ajoute après le dernier enfant du premier élément <book> :
Exemple
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Créer un nouveau nœud <édition>
- Ajouter le nœud au premier élément <book>
Ce fragment de code fait la même chose que ci-dessus, mais le nouvel élément est ajouté avec une valeur :
Exemple
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Créer un nouveau nœud <édition>
- Créer un nouveau nœud de texte "premier"
- Ajouter le nœud de texte au nœud <edition>
- Ajouter le nœud <addition> à l'élément <book>
Insérer un nœud - insertBefore()
La méthode insertBefore() insère un nœud avant un nœud enfant spécifié.
Cette méthode est utile lorsque la position du nœud ajouté est importante :
Exemple
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Exemple expliqué :
- Supposons que " books.xml " soit chargé dans xmlDoc
- Créer un nouveau nœud d'élément <book>
- Insérez le nouveau nœud devant le dernier nœud de l'élément <book>
Si le deuxième paramètre de insertBefore() est nul, le nouveau nœud sera ajouté après le dernier nœud enfant existant.
x.insertBefore(newNode,null) et x.appendChild(newNode) ajouteront tous deux un nouveau nœud enfant à x.
Ajouter un nouvel attribut
La méthode setAttribute() définit la valeur d'un attribut.
Exemple
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Exemple expliqué :
- Supposons que " books.xml " ait été chargé dans xmlDoc
- Définissez la valeur de l'attribut "edition" sur "first" pour le premier élément <book>
Il n'y a pas de méthode appelée add Attribute()
Le setAttribute() créera un nouvel attribut si l'attribut n'existe pas.
Remarque : Si l'attribut existe déjà, la méthode setAttribute() écrasera la valeur existante.
Ajouter du texte à un nœud de texte - insertData()
La méthode insertData() insère des données dans un nœud de texte existant.
La méthode insertData() a deux paramètres :
- offset - Où commencer à insérer des caractères (commence à zéro)
- string - La chaîne à insérer
Le fragment de code suivant ajoutera "Easy" au nœud de texte du premier élément <title> du XML chargé :
Exemple
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");