返回首页
当前位置: 主页 > 编程语言 > XML教程 >

XML DOM-创建节点

时间:2020-07-07 11:30来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

在本章中,我们将讨论如何使用文档对象的几种方法创建新节点。这些方法提供了创建新元素节点,文本节点,注释节点,CDATA节节点和属性节点的范围如果新创建的节点已经存在于element对象中,则将其替换为新的节点。以下各节将通过示例进行演示。

创建新的Element节点

方法createElement()创建一个新的元素节点。如果新创建的元素节点存在于element对象中,则将其替换为新的节点。

句法

使用createElement()方法的语法如下-

var_name = xmldoc.createElement("tagname");

哪里,

  • var_name-是用户定义的变量名称,其中包含新元素的名称。

  • (“ tagname”) -是要创建的新元素节点的名称。

以下示例(createnewelement_example.htm)将XML文档(node.xml)解析为XML DOM对象,并在XML文档中创建一个新元素node PhoneNo

<!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");

         new_element = xmlDoc.createElement("PhoneNo");

         x = xmlDoc.getElementsByTagName("FirstName")[0];
         x.appendChild(new_element);

         document.write(x.getElementsByTagName("PhoneNo")[0].nodeName);
      </script>
   </body>
</html>
  • new_element = xmlDoc.createElement(“ PhoneNo”); 创建新元素节点<PhoneNo>

  • x.appendChild(new_element); x保存新元素节点附加到的指定子节点<FirstName>的名称。

执行

在服务器路径上将此文件另存为createnewelement_example.htm(此文件和node.xml应在服务器中的同一路径上)。在输出中,我们获得的属性值为PhoneNo

创建新的文本节点

方法createTextNode()创建一个新的文本节点。

句法

使用createTextNode()的语法如下-

var_name = xmldoc.createTextNode("tagname");

哪里,

  • var_name-它是用户定义的变量名称,其中包含新文本节点的名称。

  • (“标记名”) -括号内是要创建的新文本节点的名称。

下面的例子(createtextnode_example.htm)解析XML文档(node.xml)成XML DOM对象,并创建一个新的文本节点林新的文本节点的XML文档英寸

<!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");
         create_t = xmlDoc.createTextNode("Im new text node");
         create_e.appendChild(create_t);

         x = xmlDoc.getElementsByTagName("Employee")[0];
         x.appendChild(create_e);


         document.write(" PhoneNO: ");
         document.write(x.getElementsByTagName("PhoneNo")[0].childNodes[0].nodeValue);
      </script>
    </body>
</html>

上面的代码的详细信息如下-

  • create_e = xmlDoc.createElement(“ PhoneNo”); 创建一个新元素< PhoneNo >。

  • create_t = xmlDoc.createTextNode(“ Im new text node”); 创建一个新的文本节点“ Im new text node”

  • x.appendChild(create_e); 文本节点“ Im new text node”将附加到元素< PhoneNo >。

  • document.write(x.getElementsByTagName(“ PhoneNo”)[0] .childNodes [0] .nodeValue); 将新的文本节点值写入元素<PhoneNo>。

执行

在服务器路径上将此文件另存为createtextnode_example.htm(此文件和node.xml应在服务器中的同一路径上)。在输出中,我们获得属性值,即PhoneNO:Im new text node

创建新的Comment节点

方法createComment()创建一个新的注释节点。程序中包含注释节点,以方便理解代码功能。

句法

使用createComment()的语法如下-

var_name = xmldoc.createComment("tagname");

哪里,

  • var_name-是用户定义的变量名称,其中包含新注释节点的名称。

  • (“标记名”) -是要创建的新注释节点的名称。

以下示例(createcommentnode_example.htm)将XML文档(node.xml)解析为XML DOM对象,并在XML文档中创建一个新的注释节点“公司是父节点”

<!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_comment = xmlDoc.createComment("Company is the parent node");

         x = xmlDoc.getElementsByTagName("Company")[0];

         x.appendChild(create_comment);

         document.write(x.lastChild.nodeValue);
      </script>
   </body>
</html>

在上面的示例中-

  • create_comment = xmlDoc.createComment(“公司是父节点”) 创建指定的注释行

  • x.appendChild(create_comment)在此行中,“ x”保存添加了注释行的元素<Company>的名称。

执行

将此文件保存为createcommentnode_example.htm服务器的路径上(该文件和node.xml应该在你的服务器在同一路径上)。在输出中,由于Company是父节点,因此获得属性值

创建新的CDATA节节点

方法createCDATASection()创建一个新的CDATA节节点。如果新创建的CDATA节节点存在于element对象中,则将其替换为新的CDATA节。

句法

使用createCDATASection()的语法如下-

var_name = xmldoc.createCDATASection("tagname");

哪里,

  • var_name-是用户定义的变量名称,其中包含新的CDATA节节点的名称。

  • (“ tagname”) -是要创建的新CDATA节节点的名称。

下面的例子(createcdatanode_example.htm)解析XML文档(node.xml)成XML DOM对象,并创建一个新CDATA部节点,“创建CDATA实施例”的XML文档英寸

<!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_CDATA = xmlDoc.createCDATASection("Create CDATA Example");

         x = xmlDoc.getElementsByTagName("Employee")[0];
         x.appendChild(create_CDATA);
         document.write(x.lastChild.nodeValue);
      </script>
   </body>
</html>

在上面的示例中-

  • create_CDATA = xmlDoc.createCDATASection(“创建CDATA示例”)创建一个新的CDATA节节点,“创建CDATA示例”

  • x.appendChild(create_CDATA)在此处,x保存索引为0的指定元素<Employee>,并将CDATA节点值附加到该元素。

执行

在服务器路径上将此文件另存为createcdatanode_example.htm(此文件和node.xml应在服务器中的同一路径上)。在输出中,我们获得属性值作为Create CDATA Example

创建新的属性节点

要创建新的属性节点,请使用方法setAttributeNode()如果新创建的属性节点存在于element对象中,则将其替换为新的属性节点。

句法

使用createElement()方法的语法如下-

var_name = xmldoc.createAttribute("tagname");

哪里,

  • var_name-是用户定义的变量名称,其中包含新属性节点的名称。

  • (“标记名”) -是要创建的新属性节点的名称。

下面的例子(createattributenode_example.htm)解析XML文档(node.xml)成XML DOM对象,并创建新的属性节点 XML文档英寸

<!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_a = xmlDoc.createAttribute("section");
         create_a.nodeValue = "A";

         x = xmlDoc.getElementsByTagName("Employee");
         x[0].setAttributeNode(create_a);
         document.write("New Attribute: ");
         document.write(x[0].getAttribute("section"));

      </script>
   </body>
</html>

在上面的示例中-

  • create_a = xmlDoc.createAttribute(“ Category”)创建名称为<section>的属性。

  • create_a.nodeValue =“ Management”为属性<section> 创建值“ A”

  • x [0] .setAttributeNode(create_a)将此属性值设置为索引为0的节点元素<Employee>。

 上一页  打印页面

------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • XML DOM-创建节点

    在本章中,我们将讨论如何使用文档对象的几种方法创建新节点。 这些方法提供了创建新 ...

  • XML DOM-获取节点

    在本章中,我们将研究如何获取 XML DOM对象 的 节点 值。 XML文档具有称为节点的信息...

  • XML DOM - Accessing

    在本章中,我们将研究如何访问被视为XML文档信息单元的XML DOM节点。 XML DOM的节点结...

  • XML DOM-导航

    到目前为止,我们研究了DOM结构,如何加载和解析XML DOM对象以及如何遍历DOM对象。 在...

  • XML DOM-遍历

    在本章中,我们将讨论XML DOM遍历。 在 上一章 中,我们研究了 如何加载XML文档并解析...

  • XML DOM-载入中

    在本章中,我们将研究XML 加载 和 解析 。 为了描述API提供的接口,W3C使用一种称为接...

猜你感兴趣