DOM對象簡單使用

很久沒有真正的寫東西了..忙着找工作..現在工作有個着落了..又有心思研究.學習新的東西了

這篇爲以後學ajax打基礎的


生成DOM文檔對象的方法
var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");
  生成XML文檔對象xmlDoc,xmlDoc中包含XML文檔中所有元素和節點

 xmlDoc.async=false;
裝載XML文檔完畢後纔開始處理下一步驟

xmlDoc.load("1.xml");
將XML文檔裝載到文檔對象中,在內存中形成文檔對象樹

DOM對象

1.IXMLDOMDocument/DOMDocument
2.IXMLDOMNode
3.IXMLDOMNodeList
4.IXMLDOMParseError
5.IXMLDOMAttribute
6.IXMLDOMDocumentType

1.IXMLDOMDocument/DOMDocument
表示DOM樹的最頂層節點
屬性
async--是否可以異步下載(可讀寫屬性)
attributes--返回節點的屬性列表
baseName--返回節點的標記名稱
childNodes--子節點列表
documentElement--返回文檔的根元素(可讀寫屬性)
方法
appendChild(在當前節點的最後增加一個新的子節點)

createNode(根據條件生成一個新節點)
createnode(type,name,namespaceURL)

IXMLDOMDocument/DOMDocument示例


var  oNodeMap,str,oList,item;
        
var  xmlDoc = new  ActiveXObject( " Msxml2.DOMDocument.4.0 " );
        xmlDoc.async
= false ;
        xmlDoc.load(
" candidate.xml " );
        
if (xmlDoc.parseError != 0 )
            document.writeln(xmlDoc.parseError.reason
+ " <br> " );
        
else
        
{
            oNodeMap
= xmlDoc.documentElement.attributes;
            document.write(oNodeMap.length
+ " <br> " );
        str
= xmlDoc.documentElement.childNodes[ 1 ].baseName;
            document.write(str
+ " <br> " );
            oList
= xmlDoc.documentElement.childNodes;
            
for ( var  i = 0 ;i < oList.length;i ++ )
                document.write(oList[i].xml
+ " <br> " );
        }



< script language = " javascript " >
        
var  xmlDoc = new  ActiveXObject( " Msxml2.DOMDocument.4.0 " );
        xmlDoc.async
= false ;
        xmlDoc.load(
" candidate.xml " );
        
var  root = xmlDoc.documentElement;
        document.write(root.xml);
        document.write(
" <br>--------------------------<br> " );
        
var  node = xmlDoc.createNode( 1 , " 創建節點 " , "" );
        node.text
= " 這是新創建得節點 " ;
        root.appendChild(node);
        window.alert(root.xml);
        document.write(root.xml);
    
</ script >


IXMLDOMNode

屬性
lastChild--返回最後一個子節點
nextSibling--指向同一層的下一個兄弟節點
xml--用XML格式表現該節點和所有子節點的內容
方法
selectNodes--根據匹配模式操作來返回符合要求的節點集合
selectSingleNode--根據匹配模式操作來返回符合要求的第一個節點
IXMLDOMNode是DOM的基本對象,所有節點都可以看作是一個IXMLDOMNode對象,所有其它DOM對象接口都是繼承它的屬性和方法。

< html >
   
< body >
      
< script  language ="javascript" >
        
var  xmlDoc = new  ActiveXObject( " Msxml2.DOMDocument.4.0 " );
        xmlDoc.async
= false ;
        xmlDoc.load(
" candidate.xml " );
        
var  root = xmlDoc.documentElement;
        
var  node = root.lastChild;
        window.alert(node.xml);
        
var  firstNode = root.childNodes[ 0 ];
        
var  nextNode = firstNode.nextSibling;
        window.alert(nextNode.xml);
    
</ script >
   
</ body >
</ html >

< html >
   
< body >
      
< script  language ="javascript" >
        
var  xmlDoc = new  ActiveXObject( " Msxml2.DOMDocument.4.0 " );
        xmlDoc.async
= false ;
        xmlDoc.load(
" candidate.xml " );
        
var  root = xmlDoc.documentElement;
        
var  node = root.selectNodes( " PERSON/NAME " );
        window.alert(node.length);
    
</ script >
   
</ body >
</ html >


IXMLDOMNodeList

屬性
length--接口對象中包含的節點數量。
方法
nextNode--返回節點集合中下一個節點。
節點的集合
IXMLDOMParseError
屬性
line--錯誤所在行號
linepos--錯誤在行中的位置
reason--發生錯誤的原因
srcText--錯誤行文本
用此接口捕獲XML文檔中存在的錯誤(包括XML結構完整錯誤及有效性錯誤)

IXMLDOMParseError示例

< html >
   
< body >
      
< script  language ="javascript" >
        
var  xmlDoc = new  ActiveXObject( " Msxml2.DOMDocument.4.0 " );
        xmlDoc.async
= false ;
        xmlDoc.load(
" errorxml.xml " );
        
if (xmlDoc.parseError.errorCode != 0 )
        
{
    document.writeln(
" 錯誤所在的行號: "   +  xmlDoc.parseError.line  +   " <br> " );
    document.writeln(
" 錯誤所在的列號: "   +  xmlDoc.parseError.linepos  +   " <br> " );
    document.writeln(
" 錯誤原因: "   +  xmlDoc.parseError.reason  +   " <br> " );
    document.writeln(
" 錯誤行文本: "   +  xmlDoc.parseError.srcText  +   " <br> " );
        }

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


IXMLDOMAttribute
表示元素的相關屬性
屬性
nodeType--返回節點類型
ownerDocument--返回該節點的根節點
text--返回節點的文本和子節點樹
value--返回屬性的值
xml--返回當前節點及其所有子節點的內容
方法
appendChild
selectSingleNode
IDOMAttribute示例

<html>
<body>
   
<script language="javascript">
        
var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");
        xmlDoc.async
=false;
        xmlDoc.load(
"candidate.xml");
        
var node=xmlDoc.documentElement.childNodes[0];
document.write(
"節點類型:"+node.nodeType+"<br>");
document.write(
"根元素節點名稱:" +node.ownerDocument.documentElement.tagName + "<br>");
document.write (
"當前節點的屬性值:" + node.attributes[0].value + "<br>");
document.write(
"當前節點及其子節點所包含的文本:" + node.text + "<br>");
    
</script> 
</body>
</html>

IXMLDOMDocumentType

屬性
entities--返回實體集,包括內部和外部DTD定義的
name--返回文檔類型的名字
nodeTypeString--返回節點類型的字符串表示
方法
removeChild--從返回的子節點集中刪除特定子節點,並返回它
replaceChild--從返回的子節點集中用新節點替換特定老節點


IXMLDOMDocumentType示例

<html>
    
<body>
    
<script language="javascript">
        
var xmlDoc=new ActiveXObject("Msxml2.DOMDocument.4.0");
        xmlDoc.async
=false;
        xmlDoc.load(
"candidate.xml");
        
var root=xmlDoc.documentElement;
        
var node=root.childNodes[1];
        window.alert(
"當前節點的類型爲:" + node.childNodes[0].nodeTypeString);
        
var element=xmlDoc.createElement("Resume");
        element.text
="添加的新元素";
        root.childNodes[
1].replaceChild(element,node.childNodes[0]);
        window.alert(node.xml);
    
</script>
   
</body>
</html>


上示例用到的XML文件
<?xml version="1.0"?>
<PEOPLE  id="fdsfsd"  ds="sdfsd">
    
<PERSON PERSONID="E01">
        
<NAME>Tony Blair</NAME>
        
<ADDRESS>10 Downing Street, London, UK</ADDRESS>
        
<TEL>(061) 98765</TEL><FAX>(061) 98765</FAX>
        
<EMAIL>[email protected]</EMAIL>
    
</PERSON>
    
<PERSON PERSONID="E02">
        
<NAME>Bill Clinton</NAME>
        
<ADDRESS>White House, USA</ADDRESS>
        
<TEL>(001) 6400 98765</TEL><FAX>(001) 6400 98765</FAX>
        
<EMAIL>[email protected]</EMAIL>
    
</PERSON>
    
<PERSON PERSONID="E03">
        
<NAME>Tom Cruise</NAME>
        
<ADDRESS>57 Jumbo Street, New York, USA</ADDRESS>
        
<TEL>(001) 4500 67859</TEL><FAX>(001) 4500 67859</FAX>
        
<EMAIL>[email protected]</EMAIL>
    
</PERSON>
    
<PERSON PERSONID="E04">
        
<NAME>Linda Goodman</NAME>
        
<ADDRESS>78 Crax Lane, London, UK</ADDRESS>
        
<TEL>(061) 54 56789</TEL><FAX>(061) 54 56789</FAX>
        
<EMAIL>[email protected]</EMAIL>
    
</PERSON>
</PEOPLE>     
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章