Crear nodos DOM XML

创建新的元素节点

createElement() 方法创建新的元素节点:

Ejemplo 1

newElement = xmlDoc.createElement("edition");
xmlDoc.getElementsByTagName("book")[0].appendChild(newElement);

Prueba personal

Explicación del ejemplo:

  1. Supongamos que books.xml ya ha sido cargado en xmlDoc en
  2. 创建一个新的元素节点 <edition>
  3. 将这个元素节点追加到第一个 <book> 元素

Ejemplo 2

循环遍历并向所有 <book> 元素添加一个元素:

for (i = 0; i < xLen; i++) { 
    newEle = xmlDoc.createElement("edition");
    newText = xmlDoc.createTextNode("Primera edición");
    newEle.appendChild(newText);
    x[i].appendChild(newEle);
}

Prueba personal

创建新的属性节点

createAttribute() 用于创建新的属性节点:

Ejemplo 1

newAtt = xmlDoc.createAttribute("edition");
newAtt.nodeValue = "first edition";
xmlDoc.getElementsByTagName("title")[0].setAttributeNode(newAtt);

Prueba personal

Explicación del ejemplo:

  1. 假设 books.xml 被加载到 xmlDoc en
  2. 创建新的属性节点 "edition"
  3. 将这个属性节点的值设置为 "first"
  4. 将这个新属性节点添加到第一个 <title> 元素

Ejemplo 2

循环遍历所有 <title> 元素并添加新的属性节点:

for (i = 0; i < xLen; i++) { 
    newAtt = xmlDoc.createAttribute("edition");
    newAtt.value = "first edition";
    x[i].setAttributeNode(newAtt);
}

Prueba personal

如果该属性已存在,则将其替换为新属性。

使用 setAttribute() 创建属性

由于 setAttribute() 方法会在属性不存在时创建新属性,因此它也可用于创建新属性。

Ejemplo 1

xmlDoc.getElementsByTagName('book')[0].setAttribute("edition","first edition");

Prueba personal

Explicación del ejemplo:

  1. Supongamos que books.xml ya ha sido cargado en xmlDoc en
  2. 将第一个 <book> 元素的 "edition" 属性的值设置为 "first"

Ejemplo 2

循环遍历所有 <title> 元素并添加新属性:

for(i = 0; i < x.length; i++) {
    x[i].setAttribute("edition", "first edition");
}

Prueba personal

创建文本节点

createTextNode() 方法创建新的文本节点:

Ejemplo 1

newEle = xmlDoc.createElement("edition");
newText = xmlDoc.createTextNode("first");
newEle.appendChild(newText);
xmlDoc.getElementsByTagName("book")[0].appendChild(newEle);

Prueba personal

Explicación del ejemplo:

  1. Supongamos que books.xml ya ha sido cargado en xmlDoc en
  2. Crear un nuevo nodo de elemento <edition>
  3. Crear un nuevo nodo de texto que contiene texto "first"
  4. Añadir este nuevo nodo de texto al nuevo nodo de elemento
  5. Añadir el nuevo nodo de elemento al primer elemento <book>:

Ejemplo 2

Agregar un nodo de elemento con nodo de texto a todos los elementos <book>:

for (i = 0; i < xLen; i++) { 
    newEle = xmlDoc.createElement("edition");
    newText = xmlDoc.createTextNode("Primera edición");
    newEle.appendChild(newText);
    x[i].appendChild(newEle);
}

Prueba personal

Crear sección de CDATA

createCDATASection() El método crea una nueva sección de CDATA.

Ejemplo 1

newCDATA = xmlDoc.createCDATASection("Oferta de año nuevo & descuento limitado");
xmlDoc.getElementsByTagName("book")[0].appendChild(newCDATA);

Prueba personal

Explicación del ejemplo:

  1. Supongamos que books.xml ya ha sido cargado en xmlDoc en
  2. Crear una nueva sección de nodo de CDATA
  3. Añadir este nuevo nodo de CDATA al primer elemento <book>:

Ejemplo 2

Recorrer en bucle e insertar un sección de CDATA en todos los elementos <book>:

x = xmlDoc.getElementsByTagName("book");
xLen = x.length;
newtext = "Oferta de año nuevo & descuento limitado";
for (i = 0; i < xLen; i++) { 
    newCDATA = xmlDoc.createCDATASection(newtext);
    x[i].appendChild(newCDATA);
}

Prueba personal

Crear nodo de comentario

createComment() El método crea un nuevo nodo de comentario.

Ejemplo 1

newComment = xmlDoc.createComment("Revisión de febrero de 2024");
xmlDoc.getElementsByTagName("book")[0].appendChild(newComment);

Prueba personal

Explicación del ejemplo:

  1. Supongamos que books.xml ya ha sido cargado en xmlDoc en
  2. Crear un nuevo nodo de comentario
  3. Añadir este nuevo nodo de comentario al primer elemento <book>:

Ejemplo 2

Recorrer en bucle e insertar un nodo de comentario en todos los elementos <book>:

x = xmlDoc.getElementsByTagName("book");
xLen = x.length
for (i = 0; i < xLen; i++) { 
    newComment = xmlDoc.createComment("Revisión de febrero de 2024");
    x[i].appendChild(newComment);
}

Prueba personal