XML引见之数据岛与解析器

XML介绍之数据岛与解析器

11.使用IE5.0或者更高的版本,XML数据可以以

数据岛的形式嵌入HTML页面。


---------------------------------------

---------------------------------------

--

在HTML页面中嵌入XML数据
使用非官方标准的<xml>标记可以将XML数据嵌入

到HTML页面中。

XML数据可以象下面的例子那样嵌入HTML页面:

<xml id="note">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!

</body>
</note>
</xml>

或者象下面这样嵌入外部单独的XML文件:

<xml id="note" src="note.xml">
</xml>

注意那个<xml>标记是一个HTML元素,而不是一

个XML元素。


---------------------------------------

---------------------------------------

--

数据绑定
XML数据岛可以绑定到HTML元素上(比如表格)。

在下面的例子中,一个XML数据岛(ID=cdcat)

被从外部XML文档载入。一个HTML的表格绑定到此

数据岛上。HTML表格内部的span元素使用

datafld属性和XML文档相应的XML元素相互绑定



<html>
<body>
<xml id="cdcat"

src="cd_catalog.xml"></xml>
<table border="1" datasrc="#cdcat">
<tr>
<td><span datafld="ARTIST"></span></td>
<td><span datafld="TITLE"></span></td>
</tr>
</table>
</body>
</html>



---------------------------------------

---------------------------------------

--
12.微软的XML解析器
 
---------------------------------------

---------------------------------------

--

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),

然后我们看一个包含了导入XML文档兵显示在HTML

页面中的JavaScript脚本代码的HTML文档

(note.htm) 。
note.xml:

  <?xml version="1.0" encoding="gb2312"

?>
- <note>
  <from>小奀</from>
  <to>小林</to>
  <message>周末一起去吃火锅呀</message>
  </note>
========================================
note.htm:

<html>
<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>