XML解析器可以读取、更新、创建、操作一个XML文档。
使用XML解析器
微软的XML解析器是和IE5.0+浏览器捆绑在一起的。
一旦你安装了IE5.0,那么就获得了XML解析器。这个浏览器除了被浏览器内部调用外,还可以在脚本中或者程序中调用。这个解析器的特点是支持与程序设计语言无关的编程模型,他支持以下技术:
- JavaScript, VBScript, Perl, VB, java, C++ 等等
- W3C XML 1.0 和 XML DOM
- DTD 和 XML文档验证
如果浏览器使用JavaScript作为脚本语言,那么利用下面的代码可以创建XML文档对象:
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM") |
如果浏览器使用VBScript作为脚本语言,那么利用下面的代码可以创建XML文档对象:
set xmlDoc=CreateObject("Microsoft.XMLDOM") |
如果在ASP程序中使用VBScript脚本语言,那么就可以使用下面的代码形式:
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM") |
将XML文档载入解析器
使用脚本代码可以将XML文档载入解析器。
下面的代码可以将一个XML文档载入解析器:
<script type="text/javascript"> var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.load("note.xml") // ....... processing the document goes here </script> |
第二行代码创建Microsoft XML解析器的实例。
第三行代码关闭异步载入,确保XML解析器在把XML文档完全载入以前不会对XML文档进行解析。
第四行则告诉解析器需要载入的XML文档名字是note.xml。
把纯XML文档由字符载入解析器
解析器可以从一个文本字符串中载入XML文本。
下面的代码演示了将文本字符串载入解析器:
<script type="text/javascript"> var text="<note>" text=text+"<to>Tove</to><from>Jani</from>" text=text+"<heading>Reminder</heading>" text=text+"<body>Don't forget me this weekend!</body>" text=text+"</note>" var xmlDoc = new ActiveXObject("Microsoft.XMLDOM") xmlDoc.async="false" xmlDoc.loadXML(text) // ....... processing the document goes here </script> |
注意这里载入字符串使用的是"loadXML()"方法)(而不是前面用过的"load()"方法), "loadXML()"是用于载入字符串,"load()"是用于载入XML文档。
使用JavaScript语言显示XML数据
可以使用JavaScript语言来显示XML数据。
JavaScript (或者 VBScript)可以从XML文档中导入数据,并将这些数据在HTML页面中显示出来。
下面我们来看一下XML和HTML是如何进行相互之间的互补的,首先来看一个XML 文档 (note.xml
- < note >
< from > 小奀 </ from >
< to > 小林 </ to >
< message > 周末一起去吃火锅呀 </ message >
</ note >
), 然后我们看一个包含了导入XML文档兵显示在HTML页面中的JavaScript脚本代码的HTML文档(note.htm
< head >
< script
type ="text/javascript"
for ="window"
event ="onload" > ...
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("note.xml")
nodes=xmlDoc.documentElement.childNodes
a1.innerText=nodes.item(0).text
a2.innerText=nodes.item(1).text
a3.innerText=nodes.item(2).text
a4.innerText=nodes.item(3).text
</ script >
</ head >
< body bgcolor ="yellow" >
< h1 > W3Schools Internal Note </ h1 >
< b > To: </ b >
< span id ="a1" ></ span >
< br />
< b > From: </ b >
< span id ="a2" ></ span >
< hr />
< b >< span id ="a3" ></ span ></ b >
< hr />
< span id ="a4" ></ span >
</ body >
</ html >
) 。
去看看他是如何工作的, 自己尝试一下吧
< head >
< script type ="text/javascript"
for ="window" event ="onload" > ...
var xmlDoc=new ActiveXObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.load("xml_note.xml")
nodes=xmlDoc.documentElement.childNodes
to.innerText= nodes.item(0).text
from.innerText= nodes.item(1).text
header.innerText=nodes.item(2).text
body.innerText= nodes.item(3).text
</ script >
< title > HTML using XML data </ title >
</ head >
< body bgcolor ="yellow" >
< h1 > W3Schools.com Internal Note </ h1 >
< b > To: </ b >
< span id ="to" > </ span >
< br />
< b > From: </ b >
< span id ="from" ></ span >
< hr >
< b >< span id ="header" ></ span ></ b >
< hr >
< span id ="body" ></ span >
</ body >
</ html >
你可以在我们的DOM School中了解更多的关于JavaScript的知识。