XML DOM - Imposta nodo
In questo capitolo, studieremo come modificare i valori dei nodi in un oggetto DOM XML. Il valore del nodo può essere modificato come segue:
var value = node.nodeValue;
Se il nodo è un attributo, la variabile del valore sarà il valore dell'attributo; se il nodo è un nodo di testo sarà il contenuto del testo; se il nodo è un elemento sarà nullo .
Le sezioni seguenti illustreranno l'impostazione del valore del nodo per ogni tipo di nodo (attributo, nodo di testo ed elemento).
Il node.xml utilizzato in tutti i seguenti esempi è il seguente:
<Company>
<Employee category = "Technical">
<FirstName>Tanmay</FirstName>
<LastName>Patil</LastName>
<ContactNo>1234567890</ContactNo>
<Email>[email protected]</Email>
</Employee>
<Employee category = "Non-Technical">
<FirstName>Taniya</FirstName>
<LastName>Mishra</LastName>
<ContactNo>1234667898</ContactNo>
<Email>[email protected]</Email>
</Employee>
<Employee category = "Management">
<FirstName>Tanisha</FirstName>
<LastName>Sharma</LastName>
<ContactNo>1234562350</ContactNo>
<Email>[email protected]</Email>
</Employee>
</Company>
Modifica il valore del nodo di testo
Quando diciamo il valore di modifica dell'elemento Nodo, intendiamo modificare il contenuto di testo di un elemento (che è anche chiamato nodo di testo ). L'esempio seguente mostra come modificare il nodo di testo di un elemento.
Esempio
Il seguente esempio (set_text_node_example.htm) analizza un documento XML ( node.xml ) in un oggetto DOM XML e modifica il valore del nodo di testo di un elemento. In questo caso, inviare un'e-mail di ciascun dipendente a [email protected] e stampare i valori.
<!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("Email");
for(i = 0;i<x.length;i++) {
x[i].childNodes[0].nodeValue = "[email protected]";
document.write(i+');
document.write(x[i].childNodes[0].nodeValue);
document.write('<br>');
}
</script>
</body>
</html>
Esecuzione
Salva questo file come set_text_node_example.htm nel percorso del server (questo file e node.xml dovrebbero trovarsi sullo stesso percorso nel tuo server). Riceverai il seguente output:
0) [email protected]
1) [email protected]
2) [email protected]
Modifica valore del nodo attributo
L'esempio seguente mostra come modificare il nodo dell'attributo di un elemento.
Esempio
Il seguente esempio (set_attribute_example.htm) analizza un documento XML ( node.xml ) in un oggetto DOM XML e cambia il valore del nodo dell'attributo di un elemento. In questo caso, la categoria di ciascun dipendente su admin-0, admin-1, admin-2 rispettivamente e stampa i valori.
<!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("Employee");
for(i = 0 ;i<x.length;i++){
newcategory = x[i].getAttributeNode('category');
newcategory.nodeValue = "admin-"+i;
document.write(i+');
document.write(x[i].getAttributeNode('category').nodeValue);
document.write('<br>');
}
</script>
</body>
</html>
Esecuzione
Salvare questo file come set_node_attribute_example.htm nel percorso del server (questo file e node.xml dovrebbero trovarsi sullo stesso percorso nel server). Il risultato sarebbe il seguente:
0) admin-0
1) admin-1
2) admin-2