21、服务器上的 XML

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

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

在服务器上存储 XML 文件

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

启动Windows 记事本,并写入以下内容

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <to>小明</to>
  <from>小红</from>
  <heading>短信</heading>
  <body>I miss you so much</body>
</note>

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

通过 ASP 生成 XML

ASP可在不安装任何 XML 软件的情况输出 XML

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

<% 
    response.ContentType="text/xml"
    response.Write("<?xml version='1.0' encoding='UTF-8'?>")
    response.Write("<note>")
    response.Write("<from>小红</from>")
    response.Write("<to>小明</to>")
    response.Write("<heading>短信</heading>")
    response.Write("<body>I miss you so much</body>")
    response.Write("</note>")

%>

响应头部的内容类型必须设置为 "text/xml"

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

通过 PHP 生成 XML

PHP也可以生成 XML 响应

<?php 

header( "Content-type: text/xml" );
echo "<?xml version='1.0' encoding='UTF-8'?>";  
echo "<note>";
echo "<from>小红</from>";
echo "<to>小明</to>";
echo "<heading>短信</heading>";
echo "<body>I miss you so much</body>";
echo "</note>";

响应头部的内容类型必须设置为 "text/xml"

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

如果想要深入学习 PHP,请移步我们的 PHP 基础教程

从数据库生成 XML

XML可在不安装任何 XML 软件的情况下从数据库生成。

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

<%

    response.ContentType = "text/xml"  

    set conn      = Server.CreateObject("ADODB.Connection")
    conn.provider = "Microsoft.Jet.OLEDB.4.0;"
    conn.open

    server.mappath("/db/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()
    end

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

%>

响应头部的内容类型必须设置为 "text/xml"

查看以上 ASP 文件的实际数据库输出

上面的范例使用了带有 ADO 的 ASP

如果想要学习 ASP 和 ADO,请在我们的 首页 查找相关教程

在服务器上通过 XSLT 转换 XML

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

<%
    'Load XML
    set xml    = Server.CreateObject("Microsoft.XMLDOM")
    xml.async  = falsexml.load(Server.MapPath("simple.xml"))

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

    'Transform file
    Response.Write(xml.transformNode(xsl))
%>

范例解析

1、 第一个代码块创建微软XML解析器的实例(XMLDOM),并把XML文件载入内存;
2、 第二个代码块创建解析器的另一个实例,并把XSL文件载入内存;
3、 最后一个代码使用XSL文档来转换XML文档,并把结果以HTML发送到您的浏览器;

看看上面的代码怎么运行

通过 ASP 把 XML 保存为文件

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

<%
    text = "<note>"
    text = text & "<to>小明</to>"
    text = text & "<from>小红</from>"
    text = text & "<heading>短信</heading>"
    text = text & "<body>I miss you so much</body>"
    text = text & "</note>"

    set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
    xmlDoc.async=false
    xmlDoc.loadXML(text)
    xmlDoc.Save("test.xml")
%>