文档对象模型DOM(java)

生成DOM文档对象的方法(VB)
  1. dim xmlDoc   
  2. set xmlDoc=CreateObject("msxml2.DOMDocument.4.0")   
  3. xmlDoc.async=false  
  4. xmlDoc.load("candidate.xml")   

生成DOM文档对象的方法(JS )

  1. var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  2. xmlDoc.async=false;   
  3. xmlDoc.load("candidate.xml");   
xml 代码
  1. var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  2. xmlDoc.async=false;   
  3. xmlDoc.load("candidate.xml");   

DOM对象

IXMLDOMDocument

定义:表示DOM树的最顶层节点

属性:

  1. async--是否可以异步下载(可读写属性)   
  2. attributes--返回节点的属性列表   
  3. basename--返回节点的标记名称   
  4. childnodes--子节点列表   
  5. documentElement--返回文档的根元素(可读写属性)  

方法:

  1. appendChild(在当前节点的最后增加一个新的子节点)   
  2. createNode(根据条件生成一个新节点)   
  3. createnode(type,name,namespaceURL)   

 上的type -->   1--元素节点;2--属性节点;3--文本节点。。。

示例XML

  1. xml version="1.0"?>  
  2. <PEOPLE>  
  3.     <PERSON PERSONID="E01">  
  4.         <NAME>Tony BlairNAME>  
  5.         <ADDRESS>10 Downing Street, London, UKADDRESS>  
  6.         <TEL>(061) 98765TEL>  
  7.              <FAX>(061) 98765FAX>  
  8.         <EMAIL>[email protected]EMAIL>  
  9.     PERSON>  
  10.       …   
  11. PEOPLE>  

示例1  Test.html

  1.   
  2.       
  3.          <script language=< span="">"javascript">   
  4.         var xmlDoc=new     
  5.                             ActiveXObject("Msxml2.DOMDocument.4.0");   
  6.         xmlDoc.async=false;   
  7.         xmlDoc.load("candidate.xml");               
  8.         if(xmlDoc.parseError.errorCode!=0)   
  9.           window.alert(xmlDoc.parseError.reason);   
  10.         else  
  11.           window.alert(xmlDoc.documentElement.text);   
  12.           </script>   
  13.       
  14.   
示例2  testerror.html
  1.   
  2.       
  3.      <script language=< span="">"javascript">   
  4.         var xmlDoc=new     
  5.                             ActiveXObject("Msxml2.DOMDocument.4.0");   
  6.         xmlDoc.async=false;   
  7.         xmlDoc.load("errorxml.xml");               
  8.         if(xmlDoc.parseError.errorCode!=0)   
  9.           window.alert(xmlDoc.parseError.reason);   
  10.         else  
  11.           window.alert(xmlDoc.documentElement.text);   
  12.           </script>   
  13.       
  14.   

 

IXMLDOMDocument/DOMDocument示例1(JS)       domdocument1.htm
  1. var oNodeMap,str,oList,item;   
  2. var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  3. xmlDoc.async=false;   
  4. xmlDoc.load("candidate.xml");   
  5.   
  6. if(xmlDoc.parseError!=0)   
  7.     document.writeln(xmlDoc.parseError.reason+"
    "
    );   
  8. else {   
  9.   
  10.     oNodeMap=xmlDoc.documentElement.attributes;   
  11.     document.write(oNodeMap.length+"
    "
    );   
  12.     str=xmlDoc.documentElement.childNodes[1].baseName;   
  13.     document.write(str+"
    "
    );   
  14.     oList=xmlDoc.documentElement.childNodes;   
  15.     for(var i=0;i
  16.         document.write(oList[i].xml+"
    "
    );   
  17. }   
IXMLDOMDocument/DOMDocument示例2(JS)         createnode/appendchild示例(domdocument2.htm)
  1. <script language=< span="">"javascript">   
  2.     var xmlDoc=new    
  3.         ActiveXObject("Msxml2.DOMDocument.4.0");   
  4.     xmlDoc.async=false;   
  5.     xmlDoc.load("candidate.xml");   
  6.     var root=xmlDoc.documentElement;   
  7.     document.write(root.xml);   
  8.     document.write("
    --------------------------
    "
    );   
  9.     var node=xmlDoc.createNode(1,“newnode","");  
  10.     node.text=“THIS IS NEW NODE";   
  11.     root.appendChild(node);   
  12.     window.alert(root.xml);   
  13.     document.write(root.xml);   
  14. </script>  

 IXMLDOMNode

属性
  1. lastChild--返回最后一个子节点   
  2. nextSibling--指向同一层的下一个兄弟节点   
  3. xml--用XML格式表现该节点和所有子节点的内容  

     方法

  1. selectNode--根据匹配模式操作来返回符合要求的节点集合   
  2. selectSingleNode--根据匹配模式操作来返回符合要求的第一个节点   
  3. IXMLDOMNode是DOM的基本对象,   
  4. 所有节点都可以看作是一个IXMLDOMNode对象   
  5. 所有其它DOM对象接口都是继承它的属性和方法。  

 

IXMLDOMNode示例1      IXMLDOMNode示例程序
  1.   
  2.       
  3.       <script language=< span="">"javascript">   
  4.         var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.         xmlDoc.async=false;   
  6.         xmlDoc.load("candidate.xml");   
  7.         var root=xmlDoc.documentElement;   
  8.         var node=root.lastChild;   
  9.         window.alert(node.xml);   
  10.         var firstNode=root.childNodes[0];   
  11.         var nextNode=firstNode.nextSibling;   
  12.         window.alert(nextNode.xml);   
  13.     </script>   
  14.       
  15.   

 IXMLDOMNodeList

属性
  1. length--接口对象中包含的节点数量。  
方法
  1. nextNode--返回节点集合中下一个节点。  
IXMLDOMNode示例2     IXMLDOMNode2.htm
  1.   
  2.       
  3.       <script language=< span="">"javascript">   
  4.         var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.         xmlDoc.async=false;   
  6.         xmlDoc.load("candidate.xml");   
  7.         var root=xmlDoc.documentElement;   
  8.         var node=root.selectNodes("PERSON/NAME");   
  9.         window.alert(node.length);   
  10.     </script>   
  11.       
  12.   
<p:colorscheme colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00"></p:colorscheme>  
IXMLDOMParseError
属性
  1. line--错误所在行号   
  2. linepos--错误在行中的位置   
  3. reason--发生错误的原因   
  4. srcText--错误行文本  
IXMLDOMParseError示例(JS)       errorxml.html
  1.   
  2.       
  3.       <script language=< span="">"javascript">   
  4.         var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.         xmlDoc.async=false;   
  6.         xmlDoc.load("errorxml.xml");   
  7.         if(xmlDoc.parseError.errorCode!=0)   
  8.         {   
  9.     document.writeln("错误行号:" + xmlDoc.parseError.line + "
    "
    );   
  10.     document.writeln("错误列号:" + xmlDoc.parseError.linepos + "
    "
    );   
  11.     document.writeln("错误原因:" + xmlDoc.parseError.reason + "
    "
    );   
  12.     document.writeln("错误行文本:" + xmlDoc.parseError.srcText + "
    "
    );   
  13.         }   
  14.     </script>   
  15.       
  16.   
IXMLDOMAttribute
定义:表示元素的相关属性
属性
  1. nodeType--返回节点类型   
  2. ownerDocument--返回该节点的根节点   
  3. text--返回节点的文本和子节点树   
  4. value--返回属性的值   
  5. xml--返回当前节点及其所有子节点的内容   
方法
  1. appendChild   
  2. selectSingleNode  

<p:colorscheme colors="#ffffff,#000000,#808080,#000000,#bbe0e3,#333399,#009999,#99cc00"></p:colorscheme>  

IDOMAttribute示例(JS)        IXMLDOMAttribute.htm
  1.   
  2.   
  3.  <script language=< span="">"javascript">   
  4.     var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.     xmlDoc.async=false;   
  6.     xmlDoc.load("candidate.xml");   
  7.     var node=xmlDoc.documentElement.childNodes[0];   
  8.       document.write("节点类型:"+node.nodeType+"
    "
    );   
  9.       document.write("根元素节点名称:"      
  10.            +node.ownerDocument.documentElement.tagName + "
    "
    );   
  11.       document.write ("当前节点的属性值:" + node.attributes[0].value + "
    "
    );   
  12.       document.write("当前节点及其子节点所包含的文本:" + node.text + "
    "
    );   
  13. </script>    
  14.   
  15.   
selectSingleNode示例(JS)                 selectSingleNode.html
  1.   
  2.       
  3.      <script language=< span="">"javascript">   
  4.         var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.         xmlDoc.async=false;   
  6.         xmlDoc.load("candidate.xml");   
  7.         var node = xmlDoc.documentElement;      window.alert(node.selectSingleNode("PERSON/NAME").text);          
  8.      </script>        
  9.       
  10.   

 

节点
  1. nodeTypeString--返回节点类型的字符串表示   
  2.   
  3. removeChild--从返回的子节点集中删除特定子节点,并返回它   
  4. replaceChild--从返回的子节点集中用新节点替换特定老节点  
IXMLDOMDocumentType示例(JS)           replacechild.html
  1.   
  2.   
  3. <script language=< span="">"javascript">   
  4.     var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.     xmlDoc.async=false;   
  6.     xmlDoc.load("candidate.xml");   
  7.     var root=xmlDoc.documentElement;   
  8.     var node=root.childNodes[1];   
  9.     window.alert("当前节点的类型为:" +    
  10.            node.childNodes[0].nodeTypeString);   
  11.     var element=xmlDoc.createElement("Resume");   
  12.     element.text="添加的新元素";   
  13.     root.childNodes[1].replaceChild(element,node.childNodes[0]);   
  14.     window.alert(node.xml);   
  15. </script>  
  16.   
  17.   

IXMLDOMDocumentType

属性
  1. entities--返回实体集,包括内部和外部DTD定义的   
  2. name--返回文档类型的名字   
IXMLDOMDocumentType示例             InternalDTD.html
  1.   
  2.   
  3. <script language=< span="">"javascript">   
  4.     var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");   
  5.     xmlDoc.async=false;   
  6.     xmlDoc.load("InternalDTD.xml");   
  7.     var node=xmlDoc.childNodes[1];   
  8.     window.alert("当前节点的类型为:" + node.nodeTypeString);   
  9.     window.alert("当前节点的类型为:" + node.name);   
  10.     window.alert(node.xml);   
  11. </script>  
  12.   
  13.   

你可能感兴趣的:(java)