首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

XML简介之XML服务器及使用

2012-10-11 
XML简介之XML服务器及应用17.简单的XML服务器--------------------------------------------不需要安装XML

XML简介之XML服务器及应用
17.简单的XML服务器
 
--------------------------------------------

不需要安装XML控件就可以在服务器上创建XML文档。


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

在服务器端存储XML文档
XML文件可以存储在网络服务器中。

就象其他的HTML文件一样,XML文件可以存储在网络服务器上。

打开你的记事本并写入下面的代码:

<?xml version="1.0" encoding="gb2312"?>
<note><from>lijizh1013</from><to>小林</to><message>晚上一起去火锅呀</message></note>

然后把这个文件保存到你的服务器上,取名"note.xml"。

注意: 这个XML文件必须和你的其他HTML文件在同一个目录下面,并且 MIME 类型应该设置成 text/xml。


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

使用ASP产生XML文件
在服务器端即使没有安装XML软件也可以产生XML文件。

为了使服务器端可以对客户端产生动态XML响应,我们可以在的服务器上创建一个包含以下代码的简单的ASP页面:

<%
response.ContentType="text/xml"
response.Write("<?xml version='1.0' encoding='gb2312'?>")
response.Write("<note>")
response.Write("<from>lijizh1013</from> ")
response.Write("<to>小林</to>")
response.Write("<message>晚上一起去火锅呀</message> ")
response.Write("</note>")
%>

注意:XML的内容必须设置正确。察看这个ASP页面,如果这个服务器支持ASP的话就会看到显示出来的内容和note.xml文件的一样。

(ASP = Active Server Pages。如果你不知道如何写ASP代码,你可以去参考我们的ASP 指南)


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

从数据库中产生XML文档
不用安装任何XML软件就可以从数据库中动态的导出XML文档。

我们把前面的例子稍加修改就可以实现从数据库中取得数据了。

下面是一个在服务器端动态生成XML数据的ASP页面例子:

<%
response.ContentType = "text/xml"
set conn=Server.CreateObject("ADODB.Connection")
conn.provider="Microsoft.Jet.OLEDB.4.0;"
conn.open server.mappath("../ado/database.mdb")
sql="select fname,lname from tblGuestBook"
set rs=Conn.Execute(sql)rs.MoveFirst()response.write("<?xml version='1.0' encoding='ISO-8859-1'?>")
response.write("<guestbook>")
while (not rs.EOF)
response.write("<guest>")
response.write("<fname>" & rs("fname") & "</fname>")
response.write("<lname>" & rs("lname") & "</lname>")
response.write("</guest>")
rs.MoveNext()
wendrs.close()
conn.close()
response.write("</guestbook>")
%>

可以在这里观看实例页面。

上面的例子使用了ADO技术,如果你不了解ADO,可以访问我们的ADO 指南。


--------------------------------------------
18.XML 应用程序
 
--------------------------------------------

这一节示范了一个小型的XML应用程序框架。


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

从XML文档开始
首先我们建立一个简单的XML文档。

来看一下我们原始的XML文档,描述了CD目录。

<?xml version="1.0" encoding="ISO-8859-1"?>
<CATALOG>
<CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
<COMPANY>Columbia</COMPANY>
<PRICE>10.90</PRICE>
<YEAR>1985</YEAR>
</CD>
.
.
... more ...
.




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

将XML文档载入数据岛
数据岛可以访问XML文件。

通过数据岛,可以把XML文档引入到HTML页面中。

<xml src="cd_catalog.xml" id="xmldso" async="false">
</xml>

使用上面示例代码,可以把cd_catalog.xml文件载入一个叫"xmldso"的数据岛中。属性async="false"的作用是在HTML处理器开始处理XML数据以前,必须确保XML文档中的所有数据都被载入到内存中。


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

把XML数据绑定到HTML的表格元素中
HTML中的table元素可以用来显示XML数据。

为了使你的XML数据能在HTML页面中显示出来,必须把的数据岛绑定到一个HTML元素上。

把XML数据绑定到table元素,需要在table属性添加一个资源属性,并且在span元素中添加字段属性:

<table datasrc="#xmldso" width="100%" border="1">
<thead>
<th>Title</th>
<th>Artist</th>
<th>Year</th>
</thead>
<tr align="left">
<td><span datafld="TITLE"></span></td>
<td><span datafld="ARTIST"></span></td>
<td><span datafld="YEAR"></span></td>
</tr></table>




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

把数据岛绑定到<span> 或者<div> 元素上
<span>或<div>元素都可以用来显示XML数据。

没有必要使用table元素来显示XML数据,数据可以通过数据岛绑定到任何一个HTML元素上。

所要做的就是在你得页面中添加一些<span> 或者<div>元素,使用数据资源属性把每一个元素和XML文档元素绑定起来,就象下面这样:

<br />Title:
<span datasrc="#xmldso" datafld="TITLE"></span>
<br />Artist:
<span datasrc="#xmldso" datafld="ARTIST"></span>
<br />Year:
<span datasrc="#xmldso" datafld="YEAR"></span>

或者象这样的形式:

<br />Title:
<div datasrc="#xmldso" datafld="TITLE"></div>
<br />Artist:
<div datasrc="#xmldso" datafld="ARTIST"></div>
<br />Year:
<div datasrc="#xmldso" datafld="YEAR"></div>



注意如果你使用<div>元素,数据将会显示在新的一行里。

上面的例子,可以看到XML数据都显示在一行里。如果要控制数据换行,就必须在你的代码里添加一些脚本程序。


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

为你的XML数据添加导航脚本
可以通过脚本程序来实现导航功能。

添加数据岛方法,使用脚本函数movenext() 和 moveprevious() 来实现导航功能。

<script type="text/javascript">
function movenext()
{
x=xmldso.recordset
if (x.absoluteposition < x.recordcount)
{
x.movenext()
}
}
function moveprevious()
{
x=xmldso.recordset
if (x.absoluteposition > 1)
{
x.moveprevious()
}
}
</script>




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

小结
如果你有创造力的话就可以编写出非常完善的应用程序。

如果你使用在这一页中学到的知识,在发挥一下想象力,就可以轻易的创造出完善的应用程序。




热点排行