服务器上的 XML

XML 文件是类似 HTML 文件的纯文本文件。

能够通过标准的 web 服务器轻松地存储和生成 XML。

在服务器上存储 XML 文件

XML 文件在 Internet 服务器上进行存储的方式与 HTML 文件完全相同。

请打开 Windows 记事本,并输入以下代码:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <from>John</from>
  <to>George</to>
  <message>Remember me this weekend</message>
</note>

然后用适当的文件名,比如 "note.xml",在 web 服务器上保存这个文件。

通过 PHP 生成 XML

可以在服务器上生成 XML,而且无需安装任何 XML 软件。

如需使用 PHP 在服务器上生成 XML 响应,请使用下面的代码:

<?php
header("Content-type: text/xml");
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<note>";
echo "<from>John</from>";
echo "<to>George</to>";
echo "<message>Remember me this weekend</message>";
echo "</note>";
?>

请注意,响应头部的内容类型必须设置为 "text/xml"。

查看这个 PHP 文件是如何从服务器返回的。

如果您希望学习 PHP,请阅读我们的 PHP 教程。

通过 ASP 生成 XML

XML 可在不安装任何 XML 软件的情况下在服务器端生成。

如需从服务器生成 XML 响应 - 只需简单地编写以下代码并在服务器上把它保存为一个 ASP 文件:

<%
response.ContentType="text/xml"
response.Write("<?xml version='1.0' encoding='UTF-8'?>")
response.Write("<note>")
response.Write("<from>John</from>")
response.Write("<to>George</to>")
response.Write("<message>Remember me this weekend</message>")
response.Write("</note>")
%>

请注意,此响应的内容类型必须设置为 "text/xml"。

查看这个 ASP 文件如何是从服务器返回的

如果您希望学习 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("/datafolder/database.mdb")

sql="select fname,lname from tblGuestBook"
set rs=Conn.Execute(sql)

response.write("<?xml version='1.0' encoding='UTF-8'?>")
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()
wend

rs.close()
conn.close()
response.write("</guestbook>")
%>

查看以上 ASP 代码的实际数据库输出

上面的例子使用了带有 ADO 的 ASP。

如果您需要学习 ADO,请访问我们的《ADO 教程》。

在服务器上使用 XSLT 来转换 XML

下面的 ASP 代码在服务器上把 XML 文件转换为 HTML:

<%
' 加载 XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("simple.xml"))

' 加载 XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("simple.xsl"))

' 转换文件
Response.Write(xml.transformNode(xsl))
%>

例子解释

  1. 第一个代码块创建微软 XML 解析器的实例 (XMLDOM),并把 XML 文件载入内存
  2. 第二个代码块创建解析器的另一个实例,并把 XSL 文件载入内存
  3. 最后一行代码使用 XSL 文档转换 XML 文档,并将结果作为 HTML 发送到浏览器。完工!

看看上面的代码如何运行

通过 ASP 把 XML 保存为文件

这个 ASP 实例会创建一个简单的 XML 文档,并把该文档保存到服务器上:

<%
text="<note>"
text=text & "<to>George</to>"
text=text & "<from>John</from>"
text=text & "<heading>Reminder</heading>"
text=text & "<body>Don't forget the meeting!</body>"
text=text & "</note>"

set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.loadXML(text)

xmlDoc.Save("test.xml")
%>