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