最新的Web开发教程
 

XML在服务器上


XML文件是纯文本文件,就像HTML文件。

XML可以很容易地被存储和由标准Web服务器生成。


在服务器上存储XML文件

XML文件可以存储在因特网服务器完全相同的方式为HTML文件上。

启动Windows记事本,写了下面几行:

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

您的Web服务器上的文件与像一个合适的名字保存"note.xml"


生成与PHP的XML

可以在服务器上而没有任何安装的XML软件生成的XML。

要使用PHP,使用下面的代码生成来自服务器的XML响应:

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

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

看看PHP文件将会从服务器返回

如果你想学习PHP,你会发现我们在我们的PHP教程网页


生成XML与ASP

要生成来自服务器的XML响应 - 只需编写下面的代码,并保存为Web服务器上的ASP文件:

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

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

怎么看ASP文件从服务器返回

如果你想学习ASP,你会发现我们在我们的ASP教程网页


生成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("/ 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文件数据库输出的真实生活

上面的例子使用ASP与ADO。

如果你想学习ASP和ADO,你会发现我们的教程主页


在服务器上转换XML使用XSLT

此ASP转换XML文件到XHTML在服务器上:

<%
'Load XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.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))
%>

例子解释

  • 第一个代码块创建微软XML解析器的一个实例(XMLDOM)和XML文件加载到内存中。
  • 第二个代码块创建解析器的另一个实例和XSL文件加载到内存中。
  • 的最后一行代码转换使用XSL文件的XML文档,并把结果作为XHTML发送到您的浏览器。 太好了!

看看它是如何工作的