XML DOM Agregar nodos
Pruébelo usted mismo - Ejemplos
Los ejemplos a continuación usan el archivo XML books.xml .
Este ejemplo usa appendChild() para agregar un nodo secundario a un nodo existente.
Este ejemplo usa insertBefore() para insertar un nodo antes de un nodo secundario especificado.
Este ejemplo usa el método setAttribute() para agregar un nuevo atributo.
Este ejemplo usa insertData() para insertar datos en un nodo de texto existente.
Añadir un nodo - appendChild()
El método appendChild() agrega un nodo secundario a un nodo existente.
El nuevo nodo se agrega (adjunta) después de cualquier nodo secundario existente.
Nota: Use insertBefore() si la posición del nodo es importante.
Este fragmento de código crea un elemento (<edición>) y lo agrega después del último hijo del primer elemento <libro>:
Ejemplo
newEle = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Crear un nuevo nodo <edición>
- Agregue el nodo al primer elemento <book>
Este fragmento de código hace lo mismo que el anterior, pero el nuevo elemento se agrega con un valor:
Ejemplo
newEle = xmlDoc.createElement("edition");
newText=xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Crear un nuevo nodo <edición>
- Crear un nuevo nodo de texto "primero"
- Agregue el nodo de texto al nodo <edición>
- Agregue el nodo <addition> al elemento <book>
Insertar un nodo - insertBefore()
El método insertBefore() inserta un nodo antes de un nodo secundario especificado.
Este método es útil cuando la posición del nodo agregado es importante:
Ejemplo
newNode = xmlDoc.createElement("book");
x = xmlDoc.documentElement;
y = xmlDoc.getElementsByTagName("book")[3];
x.insertBefore(newNode,y);
Ejemplo explicado:
- Supongamos que " books.xml " se carga en xmlDoc
- Crear un nuevo nodo de elemento <libro>
- Inserte el nuevo nodo delante del último nodo del elemento <libro>
Si el segundo parámetro de insertBefore() es nulo, el nuevo nodo se agregará después del último nodo secundario existente.
x.insertBefore(newNode,null) y x.appendChild(newNode) agregarán un nuevo nodo secundario a x.
Agregar un nuevo atributo
El método setAttribute() establece el valor de un atributo.
Ejemplo
xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first");
Ejemplo explicado:
- Supongamos que " books.xml " se ha cargado en xmlDoc
- Establezca el valor del atributo "edición" en "primera" para el primer elemento <libro>
No existe un método llamado add Attribute()
El setAttribute() creará un nuevo atributo si el atributo no existe.
Nota: si el atributo ya existe, el método setAttribute() sobrescribirá el valor existente.
Agregar texto a un nodo de texto - insertData()
El método insertData() inserta datos en un nodo de texto existente.
El método insertData() tiene dos parámetros:
- offset: dónde comenzar a insertar caracteres (comienza en cero)
- cadena - La cadena a insertar
El siguiente fragmento de código agregará "Easy" al nodo de texto del primer elemento <title> del XML cargado:
Ejemplo
xmlDoc.getElementsByTagName("title")[0].childNodes[0].insertData(0,"Easy ");