欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

JAVASCRIPT中使用DOM操作XML文檔

系統(tǒng) 2601 0
< script?language = " JavaScript " >
<!--
var ?doc? = ? new ?ActiveXObject( " Msxml2.DOMDocument " );? // ie5.5+,CreateObject("Microsoft.XMLDOM")?


// 加載文檔
//
doc.load("b.xml");

// 創(chuàng)建文件頭
var ?p? = ?doc.createProcessingInstruction( " xml " , " version='1.0'??encoding='gb2312' " );

????
// 添加文件頭
????doc.appendChild(p);

// 用于直接加載時(shí)獲得根接點(diǎn)
//
var?root?=?doc.documentElement;

// 兩種方式創(chuàng)建根接點(diǎn)
//
????var?root?=?doc.createElement("students");
???? var ?root? = ?doc.createNode( 1 , " students " , "" );

????
// 創(chuàng)建子接點(diǎn)
???? var ?n? = ?doc.createNode( 1 , " ttyp " , "" );

????????
// 指定子接點(diǎn)文本
???????? // n.text?=?"?this?is?a?test";
????
????
// 創(chuàng)建孫接點(diǎn)
???? var ?o? = ?doc.createElement( " sex " );
????????o.text?
= ? " " ;???? // 指定其文本

????
// 創(chuàng)建屬性
???? var ?r? = ?doc.createAttribute( " id " );
????????r.value
= " test " ;

????????
// 添加屬性
????????n.setAttributeNode(r);

????
// 創(chuàng)建第二個(gè)屬性????
???? var ?r1? = ?doc.createAttribute( " class " );
????????r1.value
= " tt " ;
????????
????????
// 添加屬性
????????n.setAttributeNode(r1);

????????
// 刪除第二個(gè)屬性
????????n.removeAttribute( " class " );

????????
// 添加孫接點(diǎn)
????????n.appendChild(o);

????????
// 添加文本接點(diǎn)
????????n.appendChild(doc.createTextNode( " this?is?a?text?node. " ));

????????
// 添加注釋
????????n.appendChild(doc.createComment( " this?is?a?comment " ));
????
????????
// 添加子接點(diǎn)
????????root.appendChild(n);
????
????
// 復(fù)制接點(diǎn)
???? var ?m? = ?n.cloneNode( true );

????????root.appendChild(m);
????????
????????
// 刪除接點(diǎn)
????????root.removeChild(root.childNodes( 0 ));

????
// 創(chuàng)建數(shù)據(jù)段
???? var ?c? = ?doc.createCDATASection( " this?is?a?cdata " );
????????c.text?
= ? " hi,cdata " ;
????????
// 添加數(shù)據(jù)段
????????root.appendChild(c);
????
????
// 添加根接點(diǎn)
????doc.appendChild(root);

????
// 查找接點(diǎn)
???? var ?a? = ?doc.getElementsByTagName( " ttyp " );
????
// var?a?=?doc.selectNodes("http://ttyp");

????
// 顯示改接點(diǎn)的屬性
???? for ( var ?i = ? 0 ;i < a.length;i ++ )
????
... {
????????alert(a[i].xml);
????????
for ( var ?j = 0 ;j < a[i].attributes.length;j ++ )
????????
... {
????????????alert(a[i].attributes[j].name);
????????}

????}


????
// 修改節(jié)點(diǎn),利用XPATH定位節(jié)點(diǎn)
???? var ?b? = ?doc.selectSingleNode( " //ttyp/sex " );
????b.text?
= ? " " ;

????
// alert(doc.xml);

????
// XML保存(需要在服務(wù)端,客戶端用FSO)
???? // doc.save();
????
????
// 查看根接點(diǎn)XML
???? if (n)
????
... {
????????alert(n.ownerDocument.xml);
????}


// -->
</ script >

?

在DOM眼中,HTML跟XML一樣是一種樹形結(jié)構(gòu)的文檔,<html>是根(root)節(jié)點(diǎn),<head>、<title > <body> <html> 的子( children )節(jié)點(diǎn),互相之間是兄弟( sibling )節(jié)點(diǎn); <body> 下面才是子節(jié)點(diǎn) <table> <span> <p> 等等。如下圖:

??? 這個(gè)是不是跟
XML 的結(jié)構(gòu)有點(diǎn)相似呢。不同的是, HTML 文檔的樹形主要包含表示元素、標(biāo)記的節(jié)點(diǎn)和表示文本串的節(jié)點(diǎn)。


?HTML文檔的節(jié)點(diǎn)
DOM下,HTML文檔各個(gè)節(jié)點(diǎn)被視為各種類型的Node對(duì)象。每個(gè)Node對(duì)象都有自己的屬性和方法,利用這些屬性和方法可以遍歷整個(gè)文檔樹。由于HTML文檔的復(fù)雜性,DOM定義了nodeType來表示節(jié)點(diǎn)的類型。這里列出Node常用的幾種節(jié)點(diǎn)類型:

接口
nodeType常量
nodeType值
備注
Element
Node.ELEMENT_NODE
1
元素節(jié)點(diǎn)
Text
Node.TEXT_NODE
3
文本節(jié)點(diǎn)
Document
Node.DOCUMENT_NODE
9
document
Comment
Node.COMMENT_NODE
8
注釋的文本
DocumentFragment
Node.DOCUMENT_FRAGMENT_NODE
11
document片斷
Attr
Node.ATTRIBUTE_NODE
2
節(jié)點(diǎn)屬性

DOM樹的根節(jié)點(diǎn)是個(gè)Document對(duì)象,該對(duì)象的documentElement屬性引用表示文檔根元素的Element對(duì)象(對(duì)于HTML文檔,這個(gè)就是<html>標(biāo)記)。Javascript操作HTML文檔的時(shí)候,document即指向整個(gè)文檔,<body>、<table>等節(jié)點(diǎn)類型即為Element。Comment類型的節(jié)點(diǎn)則是指文檔的注釋。具體節(jié)點(diǎn)類型的含義,請(qǐng)參考《Javascript權(quán)威指南》,在此不贅述。
Document定義的方法大多數(shù)是生產(chǎn)型方法,主要用于創(chuàng)建可以插入文檔中的各種類型的節(jié)點(diǎn)。常用的Document方法有:

方法
描述
createAttribute()
用指定的名字創(chuàng)建新的Attr節(jié)點(diǎn)。
createComment()
用指定的字符串創(chuàng)建新的Comment節(jié)點(diǎn)。
createElement()
用指定的標(biāo)記名創(chuàng)建新的Element節(jié)點(diǎn)。
createTextNode()
用指定的文本創(chuàng)建新的TextNode節(jié)點(diǎn)。
getElementById()
返回文檔中具有指定id屬性的Element節(jié)點(diǎn)。
getElementsByTagName()
返回文檔中具有指定標(biāo)記名的所有Element節(jié)點(diǎn)。

對(duì)于Element節(jié)點(diǎn),可以通過調(diào)用getAttribute()、setAttribute()、removeAttribute()方法來查詢、設(shè)置或者刪除一個(gè)Element節(jié)點(diǎn)的性質(zhì),比如<table>標(biāo)記的border屬性。下面列出Element常用的屬性:

屬性
描述
tagName
元素的標(biāo)記名稱,比如<p>元素為P。HTML文檔返回的tabName均為大寫。

Element常用的方法:

方法
描述
getAttribute()
以字符串形式返回指定屬性的值。
getAttributeNode()
以Attr節(jié)點(diǎn)的形式返回指定屬性的值。
getElementsByTabName()
返回一個(gè)Node數(shù)組,包含具有指定標(biāo)記名的所有Element節(jié)點(diǎn)的子孫節(jié)點(diǎn),其順序?yàn)樵谖臋n中出現(xiàn)的順序。
hasAttribute()
如果該元素具有指定名字的屬性,則返回true。
removeAttribute()
從元素中刪除指定的屬性。
removeAttributeNode()
從元素的屬性列表中刪除指定的Attr節(jié)點(diǎn)。
setAttribute()
把指定的屬性設(shè)置為指定的字符串值,如果該屬性不存在則添加一個(gè)新屬性。
setAttributeNode()
把指定的Attr節(jié)點(diǎn)添加到該元素的屬性列表中。

Attr對(duì)象代表文檔元素的屬性,有name、value等屬性,可以通過Node接口的attributes屬性或者調(diào)用Element接口的getAttributeNode()方法來獲取。不過,在大多數(shù)情況下,使用Element元素屬性的最簡(jiǎn)單方法是getAttribute()和setAttribute()兩個(gè)方法,而不是Attr對(duì)象。

使用DOM操作HTML文檔
Node對(duì)象定義了一系列屬性和方法,來方便遍歷整個(gè)文檔。用parentNode屬性和childNodes[]數(shù)組可以在文檔樹中上下移動(dòng);通過遍歷childNodes[]數(shù)組或者使用firstChild和nextSibling屬性進(jìn)行循環(huán)操作,也可以使用lastChild和previousSibling進(jìn)行逆向循環(huán)操作,也可以枚舉指定節(jié)點(diǎn)的子節(jié)點(diǎn)。而調(diào)用appendChild()、insertBefore()、removeChild()、replaceChild()方法可以改變一個(gè)節(jié)點(diǎn)的子節(jié)點(diǎn)從而改變文檔樹。
需要指出的是,childNodes[]的值實(shí)際上是一個(gè)NodeList對(duì)象。因此,可以通過遍歷childNodes[]數(shù)組的每個(gè)元素,來枚舉一個(gè)給定節(jié)點(diǎn)的所有子節(jié)點(diǎn);通過遞歸,可以枚舉樹中的所有節(jié)點(diǎn)。下表列出了Node對(duì)象的一些常用屬性和方法:
Node對(duì)象常用屬性:

屬性
描述

JAVASCRIPT中使用DOM操作XML文檔


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 国产精品99爱免费视频 | 一区二区三区在线观看免费 | 国产网曝在线观看视频 | 狠狠色噜噜狠狠狠狠97老肥女 | 粉嫩粉嫩一区二区三区在线播放 | 国产精品亚洲片在线va | 成人免费一区二区三区视频网站 | 草草网| 免费国产va在线观看视频 | 久久成人福利 | 91在线直播 | 2019偷偷狠狠的日日 | 在线视频se | 久久精品国产999大香线焦 | 二区国产| 色网址在线| 亚洲精品黄 | 国产日韩欧美在线观看不卡 | 美美女高清毛片视频免费观看 | 午夜电影免费看 | 亚洲国产系列 | 午夜影院在线免费观看视频 | 熟女毛片 | 欧美日韩亚洲国产 | 99热久久国产综合精品久久国产 | 亚洲中午字幕 | 性欧美激情在线观看 | 超碰8| 日本一道一区二区免费看 | 成人国产一区二区 | 免费看a| 亚洲欧美一级久久精品 | 麻豆短视频传媒网站怎么找 | 欧美久久xxxxxx影院 | 色综合久久88色综合天天 | 91不卡在线 | 国产五月色婷婷六月丁香视频 | 国产色视频一区 | 中文字幕无线码一区二区三区 | 两女互慰磨豆腐视频在线观看 | 天天激情|