XML на Сервере

Рубрика: Язык разметки XML

Здравствуйте, уважаемые читатели блога okITgo.ru! Данная статья рассказывает о создании XML документов на сервере. Действительно, XML документы могут легко храниться и генерироваться на обычном веб сервере, т.к. xml файлы являются обыкновенными тектовыми файлами, как и HTML файлы.


Хранение XML Файлов на Сервере

XML файлы можно хранить на Интернет сервере так же, как и HTML файлы.

Откройте Блокнот Windows и напишите следующие строки:

<?xml version="1.0" encoding="UTF-8"?>
<note>
  <from>Света</from>
  <to>Вася</to>
  <message>Позвони мне завтра!</message>
</note>

Сохраните файл на вашем веб сервере с подходящим именем, например "note.xml".


Генерация XML посредством ASP (Active Server Pages – Динамические Серверные Страницы)

XML можно генерировать на сервере без установки какого-либо программного обеспечения для работы с XML.

Чтобы создать XML на сервере – просто напишите следующий код и сохраните его как 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("<message>Позвони мне завтра!</message>")
response.Write("</note>")
%>

Заметьте, что тип содержимого (content type) ответа должен быть установлен в "text/xml".

Посмотрите, как ASP файл будет возвращен с сервера.


Генерация XML посредством PHP

Для генерации XML на сервере с помощью PHP, используйте следующий код:

<?php
header("Content-type: text/xml");
echo "<?xml version=’1.0′ encoding=’UTF-8’?>";
echo "<note>";
echo "<from>Света</from>";
echo "<to>Вася</to>";
echo "<message>Позвони мне завтра!</message>";
echo "</note>";
?>

Заметьте, что тип содержимого (content type) ответа должен быть установлен в "text/xml".

Посмотрите, как PHP файл будет возвращен с сервера.


Генерация 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("/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()
wend

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

Посмотрите реальный вывод с базы данных, полученный из ASP файла выше.

Пример выше использует взаимодействие ASP и ADO.


Трансформация XML посредством XSLT на Сервере

Этот ASP код трансформирует XML файл в XHTML на сервере:

<%
‘Загрузка 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))
%>

Объяснение примера

  • Первый блок кода создает экземпляр Microsoft XML парсера (XMLDOM), и загружает XML файл в память.
  • Второй блок кода создает другой экземпляр парсера и загружает XSL файл в память.
  • Последняя строка кода трансформирует XML документ с использованием XSL документа и посылает результат как XHTML в ваш браузер.

Посмотрите, как это работает.


Сохранение XML в Файл на Сервере, Используя ASP

Этот ASP-пример создает простой файл XML на сервере:

<%
text="<note>"
text=text & "<to>Света</to>"
text=text & "<from>Вася</from>"
text=text & "<heading>Напоминание</heading>"
text=text & "<body>Позвони мне завтра!</body>"
text=text & "</note>"

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

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

Спасибо за внимание! До новых встреч на страницах сайта okITgo.ru.