请输入您要查询的百科知识:

 

词条 xmldom
释义

读取、更新、创建和处理一个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's XML parser实例的代码如下:

var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")

用VBscrīpt来创建Microsoft's XML parser实例的代码如下:

set xmlDoc=CreateObject("Microsoft.XMLDOM")

在ASP页创建Microsoft's XML parser实例的代码如下:

set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")

下面的代码装载一个XML文档(note.xml)到Microsoft'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's XML parser实例的代码如下:

var xmlDoc=document.implementation.createDocument("ns","root",null)

说明:

"ns"定义XML文档所使用的名字空间;

"root"是XML的根元素;

null是第三个参数,必须是null。

下面的代码装载note.xml到Mozillas' 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('Your browser cannot handle this scrīpt');

}

}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't forget me this weekend!</body>"

txt=txt+"</note>"

var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")

xmlDoc.async="false"

xmlDoc.loadXML(txt)

...

...

...</scrīpt>

随便看

 

百科全书收录4421916条中文百科知识,基本涵盖了大多数领域的百科知识,是一部内容开放、自由的电子版百科全书。

 

Copyright © 2004-2023 Cnenc.net All Rights Reserved
更新时间:2025/2/27 15:14:47