JAVASCRIPT中使用DOM操作XML文档

简介:          在 DOM 眼中, HTML 跟 XML 一样是一种树形结构的文档,  是根( root )节点,  、  、  是  的子( children )节点,互相之间是兄弟( sibling )节点;  下面才是子节点  、  、  等等。
+关注继续查看
< script language = " JavaScript " > 
 <!-- 
 var  doc  =   new  ActiveXObject( " Msxml2.DOMDocument " );  // ie5.5+,CreateObject("Microsoft.XMLDOM")  
 
 
 // 加载文档 
// doc.load("b.xml"); 
 
 // 创建文件头 
 var  p  =  doc.createProcessingInstruction( " xml " , " version='1.0'  encoding='gb2312' " );
     // 添加文件头 
     doc.appendChild(p);
 // 用于直接加载时获得根接点 
// var root = doc.documentElement; 
 
 // 两种方式创建根接点 
//     var root = doc.createElement("students"); 
      var  root  =  doc.createNode( 1 , " students " , "" );
     // 创建子接点 
      var  n  =  doc.createNode( 1 , " ttyp " , "" );
         // 指定子接点文本 
          // n.text = " this is a test"; 
     
     // 创建孙接点 
      var  o  =  doc.createElement( " sex " );
        o.text  =   " 男 " ;     // 指定其文本 
 
     // 创建属性 
      var  r  =  doc.createAttribute( " id " );
        r.value = " test " ;
         // 添加属性 
         n.setAttributeNode(r);
     // 创建第二个属性     
      var  r1  =  doc.createAttribute( " class " );
        r1.value = " tt " ;
        
         // 添加属性 
         n.setAttributeNode(r1);
         // 删除第二个属性 
         n.removeAttribute( " class " );
         // 添加孙接点 
         n.appendChild(o);
         // 添加文本接点 
         n.appendChild(doc.createTextNode( " this is a text node. " ));
         // 添加注释 
         n.appendChild(doc.createComment( " this is a comment/n " ));
    
         // 添加子接点 
         root.appendChild(n);
    
     // 复制接点 
      var  m  =  n.cloneNode( true );
        root.appendChild(m);
        
         // 删除接点 
         root.removeChild(root.childNodes( 0 ));
     // 创建数据段 
      var  c  =  doc.createCDATASection( " this is a cdata " );
        c.text  =   " hi,cdata " ;
         // 添加数据段 
         root.appendChild(c);
    
     // 添加根接点 
     doc.appendChild(root);
     // 查找接点 
      var  a  =  doc.getElementsByTagName( " ttyp " );
     // var a = doc.selectNodes("//ttyp"); 
 
     // 显示改接点的属性 
      for ( var  i =   0 ;i < a.length;i ++ )
      {
        alert(a.xml);
         for ( var  j = 0 ;j < a.attributes.length;j ++ )
          {
            alert(a.attributes[j].name);
        } 
    } 
 
     // 修改节点,利用XPATH定位节点 
      var  b  =  doc.selectSingleNode( " //ttyp/sex " );
    b.text  =   " 女 " ;
     // alert(doc.xml); 
 
     // XML保存(需要在服务端,客户端用FSO) 
      // doc.save(); 
     
     // 查看根接点XML 
      if (n)
      {
        alert(n.ownerDocument.xml);
    } 
 
 // --> 
 </ script > 

    在 DOM 眼中, HTML 跟 XML 一样是一种树形结构的文档, <html> 是根( root )节点, <head> 、 <title > 、 <body> 是 <html> 的子( children )节点,互相之间是兄弟( sibling )节点; <body> 下面才是子节点 <table> 、 <span> 、 <p> 等等。如下图: 
 
    这个是不是跟 XML 的结构有点相似呢。不同的是, HTML 文档的树形主要包含表示元素、标记的节点和表示文本串的节点。 
 HTML 文档的节点 
DOM 下, HTML 文档各个节点被视为各种类型的 Node 对象。每个 Node 对象都有自己的属性和方法,利用这些属性和方法可以遍历整个文档树。由于 HTML 文档的复杂性, DOM 定义了 nodeType 来表示节点的类型。这里列出 Node 常用的几种节点类型: 

接口 
 nodeType 常量 
 nodeType 值 
 备注 
 
Element 
 Node.ELEMENT_NODE 
 1 
 元素节点 
 
Text 
 Node.TEXT_NODE 
 3 
 文本节点 
 
Document 
 Node.DOCUMENT_NODE 
 9 
 document 
 
Comment 
 Node.COMMENT_NODE 
 8 
 注释的文本 
 
DocumentFragment 
 Node.DOCUMENT_FRAGMENT_NODE 
 11 
 document 片断 
 
Attr 
 Node.ATTRIBUTE_NODE 
 2 
 节点属性 
 
DOM 树的根节点是个 Document 对象,该对象的 documentElement 属性引用表示文档根元素的 Element 对象(对于 HTML 文档,这个就是 <html> 标记)。 Javascript 操作 HTML 文档的时候, document 即指向整个文档, <body> 、 <table> 等节点类型即为 Element 。 Comment 类型的节点则是指文档的注释。具体节点类型的含义,请参考《 Javascript 权威指南》,在此不赘述。 
Document 定义的方法大多数是生产型方法,主要用于创建可以插入文档中的各种类型的节点。常用的 Document 方法有: 

方法 
 描述 
 
createAttribute() 
 用指定的名字创建新的 Attr 节点。 
 
createComment() 
 用指定的字符串创建新的 Comment 节点。 
 
createElement() 
 用指定的标记名创建新的 Element 节点。 
 
createTextNode() 
 用指定的文本创建新的 TextNode 节点。 
 
getElementById() 
 返回文档中具有指定 id 属性的 Element 节点。 
 
getElementsByTagName() 
 返回文档中具有指定标记名的所有 Element 节点。 
 
对于 Element 节点,可以通过调用 getAttribute() 、 setAttribute() 、 removeAttribute() 方法来查询、设置或者删除一个 Element 节点的性质,比如 <table> 标记的 border 属性。下面列出 Element 常用的属性: 

属性      描述 
tagName  元素的标记名称,比如 <p> 元素为 
 
目录
相关文章
|
1天前
|
JavaScript 前端开发
JAVAScript Dom总结
JAVAScript Dom总结
|
9天前
|
XML JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(二)
12 0
|
9天前
|
存储 JavaScript 前端开发
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(一)
JavaScript函数和BOM及DOM编程(详细总结-无尿点)(一)
13 0
|
9天前
|
XML 缓存 JavaScript
JavaScript操作DOM常用的API
1 什么是DOM 文档对象模型 (DOM) 是HTML和XML文档的编程接口。它提供了对文档的结构化的表述,并定义了一种方式可以使从程序中对该结构进行访问,从而改变文档的结构,样式和内容。文档对象模型 (DOM) 是对HTML文件的另一种展示,通俗地说,一个HTML 文件,我们可以用编辑器以代码的形式展示它,也可以用浏览器以页面的形式展示它,同一份文件通过不同的展示方式,就有了不一样的表现形式。而DOM 将文档解析为一个由节点和对象(包含属性和方法的对象)组成的结构集合。简言之,它会将web页面和脚本或程序语言连接起来,我们可以使用脚本或者程序语言通过DOM 来改变或者控制web页面。
12 0
|
11天前
|
JavaScript 前端开发
JavaScript 进阶5:WebAPI:DOM- 网页特效篇
JavaScript 进阶5:WebAPI:DOM- 网页特效篇
14 0
|
16天前
|
JavaScript 前端开发
JS中DOM编程获取与操作元素
JS中DOM编程获取与操作元素
16 0
|
16天前
|
XML 编解码 JavaScript
JS中的BOM和DOM的介绍与使用
JS中的BOM和DOM的介绍与使用
16 0
|
20天前
|
XML JavaScript 前端开发
【JavaWeb】知识总结Ⅳ(JavaScript中的DOM)
JavaScript 能改变页面中的所有 HTML 元素 JavaScript 能改变页面中的所有 HTML 属性 JavaScript 能改变页面中的所有 CSS 样式 JavaScript 能删除已有的 HTML 元素和属性 JavaScript 能添加新的 HTML 元素和属性 JavaScript 能对页面中所有已有的 HTML 事件作出反应 JavaScript 能在页面中创建新的 HTML 事件
|
30天前
|
JavaScript 前端开发
JavaScript基础(Dom操作)(三)
JavaScript基础(Dom操作)
|
30天前
|
JavaScript 前端开发 Go
JavaScript基础(Dom操作)(二)
JavaScript基础(Dom操作)
相关产品
云迁移中心
推荐文章
更多