国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 開發 > XML > 正文

Xml學習筆記(二)Javascript篇

2024-09-05 20:54:45
字體:
來源:轉載
供稿:網友

一、XML解析器(Parser)

所有的現代瀏覽器都會內建一個XML解析器(Parser)來讀取和操作XML。Parser將XML讀入內存中將之轉換為一個DOM(Documnet Object Model)對象。我們可以使用JavaScript存取到這個對象。(備注,Microsoft的Parser可以加載XML文件和字符串中的XML內容,而其他的一些Browser則分別使用不同的Parser去實現。)所有的Parser都可以遍歷XML樹,讀取、插入、刪除節點(elements)和attribute。在談論XML解析時,我們是用Nodes(節點)來代替Elements(元素)。

一般我們會從兩個地方加載XML:XML文件或者包含XML的string(字符串)。

使用MicrosoftParser加載XML文件
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("note.xml");
 
使用Parser讀取保存在string(字符串)中的XML內容
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(txt);

注意以上是使用同一個對象的不同方法去實現的。其他的Browser則是用不同的對象去實現。
var xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.async="false";
xmlDoc.load("note.xml");

var parser=new DOMParser();
var doc=parser.parseFromString(txt,"text/xml");

二、XML DOM

DOM(Document Object Model)定義了一種標準的方式去存取和操作XML文件。DOM將XML視作一個樹結構。通過DOM可以增加、修改、刪除Element,同時可以修改包括Element的Attribute和Element包含的內容(text)。我們將一個Element及其包含的所有東西(Attribute、Text)稱作一個Node。

以下是讀取<to>的節點的語句:
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue
和用HTML的DOM讀取一個id="to"的語句比較可以看到很多相似之處:
document.getElementById("to").innerHTML
(更多有關的DOM內容,可以參考XML DOM指南)

下面是一個完整的例子。用JavaScript從一個XML文件中讀取內容,顯示到HTML中。以下代碼是跨瀏覽器的。已經考慮到不同瀏覽器的問題。

<html>
<head>
<script type="text/javascript">
function parseXML()
{
try
{//try IE first
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
catch(e)
{
try
{//try Mozilla, Firefox, Opera, etc.
xmlDoc=document.implementation.createDocument("","",null);
}
catch(e)
{
alert(e.message);
return;
}
}
xmlDoc.async=false;
xmlDoc.load("note.xml");

document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
}
</script>
</head>

<body onload="parseXML()">
<h1>W3Schools Internal Note</h1>
<p><b>T</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</p>
</body>
</html>

然后下面這個例子可以快速瀏覽甚至略過,和上面代碼的區別,緊緊是先把XML存到一個string中,然后再用Parser把XML從string中讀出來。
 

<html>
<head>
<script type="text/javascript">
function parseXML()
{
var text="<note>";
text=text+"<to>Tove</to>";
text=text+"<from>Jani</from>";
text=text+"<heading>Reminder</heading>";
text=text+"<body>Don't forget me this weekend!</body>";
text=text+"</note>";
try
{// code for IE
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.loadXML(text);
}
catch(e)
{// code for Mozilla, Firefox, Opera, etc.
try
{
var parser=new DOMParser();
var xmlDoc=parser.parseFromString(text,"text/xml");
}
catch(e)
{
alert(e.message);
return;
}
}
document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].childNodes[0].nodeValue;
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].childNodes[0].nodeValue;
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].childNodes[0].nodeValue;
}
</script>
</head>

<body onload="parseXML()">
<h1>W3Schools Internal Note</h1>
<p><b>T</b> <span id="to"></span><br />
<b>From:</b> <span id="from"></span><br />
<b>Message:</b> <span id="message"></span>
</p>
</body>
</html>
 


 

三、XML to HTML

指南中給出例子的思路就是一邊用XML DOM讀取XML的內容,一邊不停的用document.write寫HTML標記和讀取到的XML內容。和上面的例子差不多,就不再轉貼代碼了。

四、XMLHttpRequestObject

這個東西很厲害啊,大名鼎鼎的Ajax就是從這東西變出來的。

什么是XMLHttpRequestObject?XMLHttpRequestObject是開發人員的夢,因為有了它,你就可以:
  • 為網頁增加新數據而無需重新加載頁面。
  • 在網頁加載后向Server請求數據。
  • 在網頁加載后從Server接受數據。
  • 在后臺向Server傳送數據。
其實以上說的都是一回事,關鍵三個字“無刷新”。

馬上看一個例子:

<html>
<head>
<script type="text/javascript">
var xmlhttp;
function loadXMLDoc(url)
{
xmlhttp=null;
if (window.XMLHttpRequest)
{// code for IE7, Firefox, Opera, etc.
xmlhttp=new XMLHttpRequest();
}
else if (window.ActiveXObject)
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp!=null)
{
xmlhttp.onreadystatechange=state_Change;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}
else
{
alert("Your browser does not support XMLHTTP.");
}
}

function state_Change()
{
if (xmlhttp.readyState==4)
{// 4 = "loaded"
if (xmlhttp.status==200)
{// 200 = "OK"
document.getElementById('A1').innerHTML=xmlhttp.status;
document.getElementById('A2').innerHTML=xmlhttp.statusText;
document.getElementById('A3').innerHTML=xmlhttp.responseText;
}
else
{
alert("Problem retrieving XML data:" + xmlhttp.statusText);
}
}
}
</script>
</head>

<body>
<h2>Using the HttpRequest Object</h2>

<p><b>Status:</b>
<span id="A1"></span>
</p>

<p><b>Status text:</b>
<span id="A2"></span>
</p>

<p><b>Response:</b>
<br /><span id="A3"></span>
</p>

<button onclick="loadXMLDoc('note.xml')">Get XML</button>

</body>
</html>

以上的代碼是在button的onClick中讀取一個xml文件的內容然后進行顯示。這里要強調的是:這里并不是把隱藏的內容顯示出來而是確實從Server的XML讀取到數據然后作顯示的,而且是無刷新的。可以到這個網址去體現一下http://www.w3schools.com/xml/tryit.asp?filename=tryxml_httprequest_js。
Open的true是表示是否進行異步操作,true表示script繼續運行而不必等待Server的應答。了解更多的XMLHttpRequest對象,可以到網上查找一下XMLHttp的CHM文檔。 注意XMLHttpRequest對象并不是W3C標準建議的。

五、總結

柔合以上的知識就可以使用JavaSripte靈活的讀寫XML了。在這里我們用到了多種的的Web技術,包括:
  • HTML和HTML DOM
  • XML和XML DOM
  • JavaScript
  • XMLHttp相關對象 
 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产农村一级特黄α**毛片| 欧美日韩性视频一区二区三区| 人xxxx性xxxxx欧美| 中文字幕免费在线视频| 中文字幕中文字幕在线中高清免费版| 欧美一级久久久久久久久大| 久久久久久77777| 国产精品自拍亚洲| 国产成人高清精品| 亚洲成人电视网| 国产理论电影在线| 国产福利片在线| 性国产高清在线观看| 国自产拍在线网站网址视频| 国产网红女主播精品视频| 在线视频中文字幕| 国产免费永久在线观看| 尤物在线视频观看| 久久av少妇| 亚洲а∨精品天堂在线| 中文字幕在线影院| 麻豆av在线| wwww亚洲| 在线免费国产视频| 国产丝袜护土调教在线视频| 免费看av大片| wwww在线观看免费视频| 国产精品被窝福利一区| 久草在线视频网| 日韩精品免费一区二区| 69国产精品| 国产黄色在线观看| 天堂资源在线中文| eeuss在线观看| 怡红院av在线| av文字幕在线观看| 精品久久亚洲一级α| 国产精品bbw一区二区三区| 九九精品九九| 国产鲁鲁视频在线观看特色| 九九热在线播放| 九九热视频免费在线观看| av在线日韩国产精品| av福利在线播放| 四虎精品成人a在线观看| 在线a人片免费观看视频| a√在线视频| 精品全国在线一区二区| 国产精品剧情一区二区在线观看 | 国产精品理人伦一区二区三区| 国自产拍在线网站网址视频| 国产永久av在线| 最新中文字幕在线视频| 国产欧美一区二区三区小说| 国产h在线观看| 永久av在线| 麻豆视频国产| 中文字幕在线影院| 中文av在线播放| www.狠狠操| 高清欧美精品xxxxx在线看| 国产一级黄色片免费| 国产黄色在线| 麻豆精品不卡国产免费看| 中文字幕毛片| 日本高清中文字幕在线 | 青青久草在线| 尤物在线网址| 在线看a视频| 国产乱在线观看视频| 2018狠狠干| 国产精品一区二区三区视频网站 | 性色视频在线| 国产精品综合久久久久| 精品国产一区二区三区四区阿崩 | av中文字幕在线看| 久草国产视频| 99中文字幕一区| 最新中文字幕在线视频| 亚洲人成电影| 国产h在线观看| 国产乱精品一区二区三区| 中文在线有码| 国产国语**毛片高清视频| 青青免费在线视频| 精品一区二区三区在线成人| 国产精品一区二区三区高清在线| 亚洲精品在线播放视频| 国产成人无吗| 国产理论电影在线观看| 麻豆国产在线播放| 四虎成人免费| gogo在线观看| 午夜小视频在线| 精品麻豆一区二区三区| 国产三级在线免费观看| 国产视频二区在线观看| 中文字幕毛片| 中文字幕在线观看av| 狠狠操狠狠色| 久久精品亚洲7777影院| 青青草中文字幕| 久久精品视频观看| 超碰在线国产| 狠狠操狠狠色| 国产天堂在线播放视频| 国产福利在线看| 亚洲妇熟xxxx妇色黄| www.操操| 最近免费中文字幕在线第一页| 国产精品作爱| 国产区视频在线播放| 国产91久久久久蜜臀青青天草二| 国产精品日日爱| 在线天堂视频| 国产原创av在线| 国产极品美女到高潮| 精品一区二区91| 青青草在线播放| 九色在线网站| 国产三级香港三韩国三级| 国产成人午夜精品| 午夜在线不卡| 国产午夜精品一区理论片| av福利在线观看| 国产女人在线观看| 精品入口麻豆传煤| 蜜桃av在线免费观看| 五月天亚洲激情| 亚洲视频手机在线观看| 国产女王在线**视频 | av在线首页| 国内精品免费一区二区三区| 国产精品178页| 麻豆电影传媒二区| 国产高清在线观看| 久热免费视频| av大片在线| 天天av天天爱| jizz一区二区三区| 国产福利图片| 中文字幕久热在线精品| 亚洲精品一线| 国产精品视频福利一区二区 | 国产一二区视频| av在线播放网| 夜夜操天天干| 91亚洲精选| 国产欧美日韩精品综合| 久久五月精品| 亚洲www色| 在线免费看黄av| 国产精品美女视频免费观看软件| 好吊日视频在线观看| 免费高清av| 超碰在线中文| 国产在线三区| 久久精品最新免费国产成人| 亚洲欧美一区二区三区在线播放| 国产系列电影在线播放网址| 黄色av网站在线免费观看| 日本在线观看网站| 亚洲成a人v欧美综合天堂麻豆| 国产不卡一卡2卡三卡4卡5卡在线| 国产麻豆精品视频一区二区| eeuss影院www在线观看| 伊人精品影院| av网址在线播放| 四虎www视频| 中文在线视频观看| 亚洲免费国产| 青草av在线| 午夜视频在线| 最近中文字幕mv2018在线高清| 成年网站免费入口在线观看| 国产精品一区二区资源| 国产午夜精品久久久久免费视| 国产高清在线观看| 性网站在线看| 最近中文av字幕在线中文| 国产视频2区| baoyu777.永久免费视频| 国产精选在线观看| 中文在线视频| 国产免费黄色| 在线观看午夜av| 最近免费中文字幕在线第一页 | 在线播放黄色网址| 老师我好爽再深一点的视频| 最近久乱中文字幕| 亚洲欧美自拍另类| 蜜桃av网站| 91资源在线观看| 九色精品视频在线观看| 国产精品99爱免费视频| 欧美日韩在线视频免费观看 | 亚洲综合激情六月婷婷在线观看| 国产在线观看色| 伊人伊人av电影| 中文字幕免费中文|