html调用xml方法
html调用xml方法[转]
网上资源, 软件技术
<xml id="files">
<root>
<文件>
<文件名>a.html</文件名>
<大小>1k</大小>
</文件>
<文件>
<文件名>b.html</文件名>
<大小>20k</大小>
</文件>
<文件>
<文件名>c.html</文件名>
<大小>2k</大小>
</文件>
</root>
</xml>
<table datasrc="#files">
<tr>
<td><span datafld="文件名" /></td>
<td><span datafld="大小" /></td>
</tr>
</table>
这个例子是一本xml教程书上的例子。也许是它很经典,在很多其它的地方我都看到有抄录的。我当然也是在抄录,但我先在这声明以下。毕竟我现在是在初学xml。
以下是要被html文件调用的xml文档例10-6.XML:
<?xml version="1.0" encoding="GB2312" ?>
<HotelList>
<Hotel>
<Name>四海大酒店</Name>
<Address>海魂路1号</Address>
<HomePage>www.sihaohotel.com.cn</HomePage>
<E-Mail>master@sihaohotel.com.cn</E-Mail>
<TelePhone>(0989)8888888</TelePhone>
<Grade>五星级</Grade>
</Hotel>
<Hotel>
<Name>五湖宾馆</Name>
<Address>东平路99号</Address>
<HomePage>www.wuhu.com.cn</HomePage>
<E-Mail>web@wuhu.com.cn</E-Mail>
<TelePhone>(0979)1111666</TelePhone>
<Grade>四星级</Grade>
</Hotel>
<Hotel>
<Name>“大沙漠”宾馆</Name>
<Address>留香路168号</Address>
<HomePage>www.dashamohotel.com.cn</HomePage>
<E-Mail>master@dashamohotel.com.cn</E-Mail>
<TelePhone>(0989)87878788</TelePhone>
<Grade>五星级</Grade>
</Hotel>
<Hotel>
<Name>“画眉鸟”大酒店</Name>
<Address>血海飘香路2号</Address>
<HomePage>www.throstlehotel.com.cn</HomePage>
<E-Mail>chuliuxiang@throstlehotel.com.cn</E-Mail>
<TelePhone>(099)9886666</TelePhone>
<Grade>五星级</Grade>
</Hotel>
</HotelList>
下面是调用xml文档的html文件
<HTML>
<HEAD><Title>数据岛中的记录集</Title></HEAD>
<body bkcolor=#EEEEEE text=blue bgcolor="#00FFFF">
<XML ID="theXMLisland" src="例10-6.XML"></xml>
<Table align=center width="100%"><TR><TD align="center">
<h5><b><font size="6" color="#FF0000">XML数据岛记录</font></b></h5>
</TD></TR></Table>
<HR>
酒店名称:<input type=text datasrc=#theXMLisland DataFLD=NAME size="76"><BR>
地址:<input type=text datasrc=#theXMLisland DataFLD=Address size="76"><BR>
主页:<input type=text datasrc=#theXMLisland DataFLD=HomePage size="76"><BR>
电子邮件:<input type=text datasrc=#theXMLisland DataFLD=E-Mail size="76"><BR>
电话:<input type=text datasrc=#theXMLisland DataFLD=TelePhone size="76"><BR>
级别:<input type=text datasrc=#theXMLisland DataFLD=Grade size="76"><HR>
<input id="first" TYPE=button value="<< 第一条记录" οnclick="theXMLisland.recordset.moveFirst()">
<input id="prev" TYPE=button value="<上一条记录" οnclick="theXMLisland.recordset.movePrevious()">
<input id="next" TYPE=button value="下一条记录>" οnclick="theXMLisland.recordset.moveNext()">
<input id="last" TYPE=button value="最后一条记录>>" οnclick="theXMLisland.recordset.moveLast()">
<input id="Add" TYPE=button value="添加新记录" οnclick="theXMLisland.recordset.addNew()">
</body>
</HTML>
html文件中调用xml文档[js调用]
在这里,我用比较“古老”的方法,来在html文件中调用xml文档的数据。其中用到了javascript.我一向欣赏javascript,而不愿意用vbscript。当然,这只是我自己的一种情绪在作怪。vbscript当用且用。不要拒绝任何对你好的东西。下面是个简单的例子。
一.下面先建立一个xml文档myxml。myfile为根元素,它包含四个字元素:
<?xml version="1.0" encoding="gb2312"?>
<myfile>
<title>xml实用进阶</title>
<author>魅力奇异岭</author>
<email>zhyt710@tom.com</email>
<date>20060423</date>
</myfile>
二.在建立一个html文档myhtm,用来调用上面建立的xml文档,注意其中javascript的使用。例程如下:
<html>
<head>
<script language="JavaScript" for="window" event="onload">
var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
xmlDoc.async="false";
xmlDoc.load("myxml.xml");
nodes = xmlDoc.documentElement.childNodes;
title.innerText = nodes.item(0).text;
author.innerText = nodes.item(1).text;
email.innerText = nodes.item(2).text;
date.innerText = nodes.item(3).text;
</script>
<title>在HTML中调用XML数据</title>
</head>
<body bgcolor="#FFFFFF">
<b>标题: </b>
<span id="title"></span><br>
<b>作者: </b>
<span id="author"></span><br>
<b>电子信箱: </b>
<span id="email"></span><br>
<b>日期: </b>
<span id="date"></span><br>
</body>
</html>
把两者放在同一个目录下,你就可以打开myhtm.htm来察看myxml.xml的信息了
xml数据查询调用
一会的工夫,我又参考了一些资料,作了一个关于在htm文件中查询xml文档纪录的例子。其中也是用到了脚本语言javascript。其实在这个地方。javascrip和vbscript的语句就是一样的。不过javascript多了语句结束符“;”。注意其中各个网页元素中id的使用,以及脚本中的查询语句的格式。好了,下面就是我做的例子,请大家欣赏.
先给出要查询的xml文件text.xml:
<?xml version="1.0" encoding="GB2312" ?>
<文章表>
<文章>
<id>1</id>
<标题>xml的应用</标题>
<内容>我是第一篇文章,欢迎看到我</内容>
</文章>
<文章>
<id>2</id>
<标题>爱情日记</标题>
<内容>我是真的真的很爱你</内容>
</文章>
<文章>
<id>3</id>
<标题>忘忧草</标题>
<内容>送给你一棵,让你忘记所有烦恼</内容>
</文章>
<文章>
<id>4</id>
<标题>无题</标题>
<内容>这只是示例</内容>
</文章>
</文章表>
接下来是用语查询上面的xml文档并显示的html文件showtext.htm:
<html>
<script language="javascript">
function query()
{
//得到文章的标题
s=document.all.Text.XMLDocument;
temp=s.selectSingleNode("/文章表/文章[id='"+m.value+"']/标题");
if(temp==null) title.value='没有这个标题';
else title.value=temp.text;
//得到文章的内容
temp=s.selectSingleNode("/文章表/文章[id='"+m.value+"']/内容");
if(temp==null) content.value='没有内容';
else content.value=temp.text;
}
</script>
<head>
<title>查询xml中的纪录</title>
</head>
<body>
<xml id="Text" src="text.xml"></xml>
<h2>xml查询示例</h2>
请输入要查询的id号:
<input type="text" id="m" width=3 size="5"><input type="button" value="查找" οnclick="query()">
<br><br>
<input type="text" id="title"><br>
<textarea cols="30" rows="10" id="content"></textarea>
</body>
</html>
好了,现在就把这两个文件放在一个目录下,用浏览器打开showtext.htm欣赏一下吧。
在表格中调用xml文档数据并实现分页
在表格中调用xml文档数据.这个例子完全是我写的。我在表格里调用xml文档数据。并且在xml文档中用的是中文标签。而且再这个表格中实现了分页,和页面跳转功能。在htm文件中有相应的注释。我力争使这个页面出现尽可能多的典型的功能。我在例子中已经给了注释,所以就不在这里罗嗦讲解了。
以下是xml文档newxml.xml:
<?xml version="1.0" encoding="GB2312" ?>
<员工表>
<员工>
<姓名>张易</姓名>
<性别>男</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>张晴</姓名>
<性别>女</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>笑哈哈</姓名>
<性别>女</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>444</姓名>
<性别>男</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>555</姓名>
<性别>女</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>666</姓名>
<性别>女</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>999</姓名>
<性别>男</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>777</姓名>
<性别>女</性别>
<年龄>23</年龄>
</员工>
<员工>
<姓名>888</姓名>
<性别>女</性别>
<年龄>23</年龄>
</员工>
</员工表>
以下是调用xml文档的html文件:
<html>
<head>
<title>中文标识的xml数据调用</title>
</head>
<body>
<XML ID="CNxml" src="newxml.xml"></xml>
<h2>表格调用xml数据并分页现显示</h2>
<table><!-- 列名单独作为一个表是为了不让它重复出现 -->
<tr>
<td width=50>姓名</td><td width=50>性别</td><td width=50>年龄</td>
</tr>
</table>
<table ID="ygTable" DATASRC="#CNxml" DATAPAGESIZE=3>
<!-- "DATAPAGESIZE"是设定每页显示的记录数 -->
<!-- 本table的标志,是用来控制页的滚动的行为对象 -->
<tr>
<td width=50><SPAN datafld=姓名></SPAN></td>
<td width=50><SPAN datafld=性别></SPAN></td>
<td width=50><SPAN datafld=年龄></SPAN></td>
</tr>
</table>
<br>
<!--该javascrip脚本函数实现页跳转功能-->
<script language="javascript">
function go(pageNum)
{
ygTable.firstPage();
for(var i=1; i<pageNum; i++) //不知道定位函数所以用循环来寻找应当到的页数
ygTable.nextPage();
}
</script>
<a href="javascript :go(1)">1</a>
<a href="javascript :go(2)">2</a>
<a href="javascript :go(3)">3</a> <br>
<!-- onclick行为中,是以本table为主体对象调用的函数,可见这种方法实现份也是多么的简单 -->
<input type="button" value="第一页" name="B1" οnclick="ygTable.firstPage()">
<input type="button" value="上一页" name="B2" οnclick="ygTable.previousPage()">
<input type="button" value="下一页" name="B3" οnclick="ygTable.nextPage()">
<input type="button" value="最后一页" name="B4" οnclick="ygTable.lastPage()">
<!-- 页跳转功能,同样用到了上面javascript定义的脚本程序函数 -->
<input type="text" name="pageto" value="1" size="5">
<input type="button" value="跳转" οnclick="go(pageto.value)">
</body>
</html>