xmldom

"n documen documen

讀取、更新、創建和處理一個XML文檔,需要一個XML parser(語法分析器).
一、微軟的XML Parser
微軟的XML Parser是一個COM組件,它是隨ie5及以上一起的。一但你安裝了ie,那么這個分析器對腳本就
是有效的。
微軟的XML Parser提供了所有必須的函式來訪問結點以及它們的屬性以及插入、刪除結點和轉換結點樹到
XML。
下面列出了通常為微軟的XML Parser所支持的結點類型:
結點類型 例子
處理指令 <?xml version="1.0"?>
元素 <drink type="beer">carlsberg</drink>
屬性 type="beer"
文本 Carlsberg
MSXML Parser 2.5是和Windows2000、ie5.5一起的
MSXML Parser 3.0是和Windowsxp、ie6.0一起的
MSXML Parser 3.0的特點:
1、支持Javascrīpt, VBscrīpt, Perl, VB, Java, C++等
2、完全支持XML
3、完全支持DOM和名字空間
4、DTD及確認
5、完全支持XSLT和XPath
6、支持SAX2
7、Server-safe HTTP
用Javascrīpt來創建Microsoft&#039;s XML parser實例的代碼如下:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
用VBscrīpt來創建Microsoft&#039;s XML parser實例的代碼如下:
set xmlDoc=CreateObject("Microsoft.XMLDOM")
在ASP頁創建Microsoft&#039;s XML parser實例的代碼如下:
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
下面的代碼裝載一個XML文檔(note.xml)到Microsoft&#039;s XML parser中:
<scrīpt type="text/javascrīpt">
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
...
...
...
</scrīpt>
說明:
xmlDoc=new ActiveXObject("Microsoft.XMLDOM")創建一個 Microsoft XML parser的實例。
xmlDoc.load("note.xml")告訴語法分析器去裝載一個名為note.xml的XML文檔。
xmlDoc.async="false"關閉異步裝載,以便於等到XML文檔完全裝載後分析器才繼續腳本的執行。
二、Mozilla Browsers的XML Parser
一個簡單的XML文檔在Mozilla Browsers中以類似樹的結構顯示(像ie),Mozilla 也支持Javascrīpt,
被分析的數據能夠顯示為HTML。
在Mozilla Browsers中用Javascrīpt來創建Microsoft&#039;s XML parser實例的代碼如下:
var xmlDoc=document.implementation.createDocument("ns","root",null)
說明:
"ns"定義XML文檔所使用的名字空間;
"root"是XML的根元素;
null是第三個參數,必須是null。
下面的代碼裝載note.xml到Mozillas&#039; XML parser中:
<scrīpt type="text/javascrīpt">
var xmlDoc=document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");
...
...
...
</scrīpt>
說明類似MSXML Parser。
三、一個跨瀏覽器的代碼
<html>
<head>
<scrīpt type="text/javascrīpt">
var xmlDoc
function loadXML()
{
//load xml file
// code for IE
if (window.ActiveXObject)
{
xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async=false;
xmlDoc.load("note.xml");
GetMessage()
}
// code for Mozilla, etc.
else if (document.implementation &&
document.implementation.createDocument)
{
xmlDoc= document.implementation.createDocument("","",null);
xmlDoc.load("note.xml");
xmlDoc.onload=getmessage
}
else
{
alert(&#039;Your browser cannot handle this scrīpt&#039;);
}
}function getmessage()
{
document.getElementById("to").innerHTML=
xmlDoc.getElementsByTagName("to")[0].firstChild.nodeValue
document.getElementById("from").innerHTML=
xmlDoc.getElementsByTagName("from")[0].firstChild.nodeValue
document.getElementById("message").innerHTML=
xmlDoc.getElementsByTagName("body")[0].firstChild.nodeValue
}
</scrīpt>
</head><body bgcolor="yellow">
<h1>W3Schools Internal Note</h1>
To: [font id="to"][/font]
From: [font id="from"][/font]
<hr />
Message: [font id="message"][/font]
</body>
</html>
四、裝載XML文本到語法分析器中
ie支持兩種方法裝載XML:
load():裝載XML檔案
loadXML():一個包含XML代碼的文本字元串
下面是一個loadXML()的例子:
<scrīpt type="text/javascrīpt">
var txt="<note>"
txt=txt+"<to>Tove</to><from>Jani</from>"
txt=txt+"<heading>reminder</heading>"
txt=txt+"<body>Don&#039;t forget me this weekend!</body>"
txt=txt+"</note>"
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.loadXML(txt)
...
...
...</scrīpt>

相關詞條

相關搜尋

熱門詞條

聯絡我們