XML DOM - Knoten hinzufügen
In diesem Kapitel werden die Knoten des vorhandenen Elements erläutert. Es bietet ein Mittel, um -
neue untergeordnete Knoten vor oder nach den vorhandenen untergeordneten Knoten anhängen
Daten in den Textknoten einfügen
Attributknoten hinzufügen
Die folgenden Methoden können verwendet werden, um die Knoten zu einem Element in einem DOM hinzuzufügen / anzuhängen:
- appendChild()
- insertBefore()
- insertData()
appendChild ()
Die Methode appendChild () fügt den neuen untergeordneten Knoten nach dem vorhandenen untergeordneten Knoten hinzu.
Syntax
Die Syntax der appendChild () -Methode lautet wie folgt:
Node appendChild(Node newChild) throws DOMException
Wo,
newChild - Ist der hinzuzufügende Knoten
Diese Methode gibt den hinzugefügten Knoten zurück .
Beispiel
Im folgenden Beispiel (appendchildnode_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und das neue untergeordnete PhoneNo an das Element <FirstName> angehängt.
<!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>
Im obigen Beispiel -
Mit der Methode createElement () wird ein neues Element PhoneNo erstellt.
Das neue Element PHONENO wird zu dem Elemente First der Methode appendChild () verwendet.
Ausführung
Speichern Sie diese Datei als appendchildnode_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server im selben Pfad befinden). In der Ausgabe erhalten wir den Attributwert als PhoneNo .
insertBefore ()
Die Methode insertBefore () fügt die neuen untergeordneten Knoten vor den angegebenen untergeordneten Knoten ein.
Syntax
Die Syntax der Methode insertBefore () lautet wie folgt:
Node insertBefore(Node newChild, Node refChild) throws DOMException
Wo,
newChild - Ist der einzufügende Knoten
refChild - Ist der Referenzknoten, dh der Knoten, vor dem der neue Knoten eingefügt werden muss.
Diese Methode gibt den einzufügenden Knoten zurück .
Beispiel
Im folgenden Beispiel (insertnodebefore_example.htm) wird ein XML-Dokument ( node.xml ) in ein XML-DOM-Objekt analysiert und eine neue untergeordnete E-Mail vor dem angegebenen Element <Email> eingefügt .
<!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>
Im obigen Beispiel -
Mit der Methode createElement () wird ein neues Element Email erstellt.
Das neue Element Email wird vor dem Element Email mit der Methode insertBefore () hinzugefügt .
y.length gibt die Gesamtzahl der Elemente an, die vor und nach dem neuen Element hinzugefügt wurden.
Ausführung
Speichern Sie diese Datei als insertnodebefore_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server auf demselben Pfad befinden). Wir erhalten folgende Ausgabe:
No of Email elements before inserting was: 3
No of Email elements after inserting is: 4
insertData ()
Die Methode insertData () fügt eine Zeichenfolge mit dem angegebenen 16-Bit-Einheitenoffset ein.
Syntax
Die insertData () hat die folgende Syntax:
void insertData(int offset, java.lang.String arg) throws DOMException
Wo,
offset - ist der Zeichenversatz, bei dem eingefügt werden soll.
arg - ist das Schlüsselwort zum Einfügen der Daten. Es schließt die beiden Parameter Offset und String in die durch Komma getrennte Klammer ein.
Beispiel
Im folgenden Beispiel (addtext_example.htm) wird ein XML-Dokument (" node.xml ") in ein XML-DOM-Objekt analysiert und neue Daten MiddleName an der angegebenen Position in das Element <FirstName> eingefügt.
<!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");- Hier enthält x den Namen des angegebenen untergeordneten Namens, dh <FirstName>. Wir fügen dann in diesen Textknoten die Daten "MiddleName" ab Position 6 ein.
Ausführung
Speichern Sie diese Datei als addtext_example.htm im Serverpfad (diese Datei und node.xml sollten sich auf Ihrem Server im selben Pfad befinden). In der Ausgabe erhalten wir Folgendes:
Tanmay
TanmayMiddleName