DOM XML - Ajouter un nœud
Dans ce chapitre, nous aborderons les nœuds de l'élément existant. Il fournit un moyen de -
ajouter de nouveaux nœuds enfants avant ou après les nœuds enfants existants
insérer des données dans le nœud de texte
ajouter un nœud d'attribut
Les méthodes suivantes peuvent être utilisées pour ajouter / ajouter les nœuds à un élément dans un DOM -
- appendChild()
- insertBefore()
- insertData()
appendChild ()
La méthode appendChild () ajoute le nouveau nœud enfant après le nœud enfant existant.
Syntaxe
La syntaxe de la méthode appendChild () est la suivante -
Node appendChild(Node newChild) throws DOMException
Où,
newChild - Est le nœud à ajouter
Cette méthode renvoie le nœud ajouté.
Exemple
L'exemple suivant (appendchildnode_example.htm) analyse un document XML ( node.xml ) dans un objet DOM XML et ajoute le nouvel enfant PhoneNo à l'élément <FirstName>.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
create_e = xmlDoc.createElement("PhoneNo");
x = xmlDoc.getElementsByTagName("FirstName")[0];
x.appendChild(create_e);
document.write(x.getElementsByTagName("PhoneNo")[0].nodeName);
</script>
</body>
</html>
Dans l'exemple ci-dessus -
en utilisant la méthode createElement (), un nouvel élément PhoneNo est créé.
Le nouvel élément PhoneNo est ajouté à l'élément FirstName à l'aide de la méthode appendChild ().
Exécution
Enregistrez ce fichier sous le nom appendchildnode_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Dans la sortie, nous obtenons la valeur d'attribut comme PhoneNo .
insertBefore ()
La méthode insertBefore () insère les nouveaux nœuds enfants avant les nœuds enfants spécifiés.
Syntaxe
La syntaxe de la méthode insertBefore () est la suivante -
Node insertBefore(Node newChild, Node refChild) throws DOMException
Où,
newChild - Est le nœud à insérer
refChild - Est le nœud de référence, c'est-à-dire le nœud avant lequel le nouveau nœud doit être inséré.
Cette méthode renvoie le nœud en cours d'insertion.
Exemple
L'exemple suivant (insertnodebefore_example.htm) analyse un document XML ( node.xml ) dans un objet DOM XML et insère un nouvel e-mail enfant avant l'élément spécifié <Email>.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
create_e = xmlDoc.createElement("Email");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("Email");
document.write("No of Email elements before inserting was: " + y.length);
document.write("<br>");
x.insertBefore(create_e,y[3]);
y=xmlDoc.getElementsByTagName("Email");
document.write("No of Email elements after inserting is: " + y.length);
</script>
</body>
</html>
Dans l'exemple ci-dessus -
en utilisant la méthode createElement (), un nouvel élément Email est créé.
Le nouvel élément Email est ajouté avant l'élément Email en utilisant la méthode insertBefore ().
y.length donne le nombre total d'éléments ajoutés avant et après le nouvel élément.
Exécution
Enregistrez ce fichier sous le nom insertnodebefore_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Nous recevrons la sortie suivante -
No of Email elements before inserting was: 3
No of Email elements after inserting is: 4
insertData ()
La méthode insertData () insère une chaîne au décalage d'unité 16 bits spécifié.
Syntaxe
InsertData () a la syntaxe suivante -
void insertData(int offset, java.lang.String arg) throws DOMException
Où,
offset - est le décalage de caractère auquel insérer.
arg - est le mot clé pour insérer les données. Il entoure les deux paramètres offset et string entre parenthèses séparés par une virgule.
Exemple
L'exemple suivant (addtext_example.htm) analyse un document XML (" node.xml ") dans un objet XML DOM et insère de nouvelles données MiddleName à la position spécifiée dans l'élément <FirstName>.
<!DOCTYPE html>
<html>
<head>
<script>
function loadXMLDoc(filename) {
if (window.XMLHttpRequest) {
xhttp = new XMLHttpRequest();
} else // code for IE5 and IE6 {
xhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",filename,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script>
xmlDoc = loadXMLDoc("/dom/node.xml");
x = xmlDoc.getElementsByTagName("FirstName")[0].childNodes[0];
document.write(x.nodeValue);
x.insertData(6,"MiddleName");
document.write("<br>");
document.write(x.nodeValue);
</script>
</body>
</html>
x.insertData(6,"MiddleName");- Ici, x contient le nom du nom de l'enfant spécifié, c'est-à-dire <FirstName>. Nous insérons ensuite dans ce nœud de texte les données "MiddleName" à partir de la position 6.
Exécution
Enregistrez ce fichier sous le nom addtext_example.htm sur le chemin du serveur (ce fichier et node.xml doivent être sur le même chemin sur votre serveur). Nous recevrons ce qui suit dans la sortie -
Tanmay
TanmayMiddleName