XML sur le serveur

Les fichiers XML sont des fichiers de texte purs similaires aux fichiers HTML.

Il est possible de stocker et de générer des fichiers XML de manière simple avec un serveur web standard.

Stockage des fichiers XML sur le serveur

Le mode de stockage des fichiers XML sur le serveur Internet est le même que pour les fichiers HTML.

Ouvrez le Bloc-notes de Windows et saisissez le code suivant :

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

Ensuite, enregistrez ce fichier avec un nom approprié, par exemple "note.xml", sur le serveur web.

Génération XML avec PHP

Il est possible de générer XML sur le serveur sans installer de logiciel XML.

Pour générer une réponse XML sur le serveur en utilisant PHP, utilisez le code suivant :

<?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>";
?>

Veuillez noter que le contenu du header de réponse doit être configuré en "text/xml".

Voyez comment ce fichier PHP est retourné par le serveur.

Si vous souhaitez apprendre PHP, veuillez lire notre tutoriel PHP.

Génération XML via ASP

L'XML peut être généré sur le serveur sans installer de logiciel XML.

Pour générer une réponse XML à partir du serveur - il suffit de simplement écrire le code suivant et de le sauvegarder sur le serveur sous forme de fichier 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>")
%>

Veuillez noter que le type de contenu de cette réponse doit être réglé sur "text/xml".

Voyez comment ce fichier ASP est retourné par le serveur

Si vous souhaitez apprendre ASP, vous pouvez lire notre tutoriel ASP.

Génération XML à partir de la base de données

L'XML peut être généré à partir de la base de données sans installer de logiciel XML.

Pour générer une réponse de base de données XML à partir du serveur, il suffit de simplement écrire le code suivant et de le sauvegarder sur le serveur sous forme de fichier 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>")
%>

Voyez la sortie réelle de la base de données pour le code ASP ci-dessus

L'exemple ci-dessus utilise ASP avec ADO.

Si vous souhaitez apprendre ADO, visitez notre tutoriel sur ADO.

Utilisation de XSLT pour la conversion XML sur le serveur

Le code ASP suivant convertit le fichier XML en HTML sur le serveur :

<%
' Charger XML
set xml = Server.CreateObject("Microsoft.XMLDOM")
xml.async = false
xml.load(Server.MapPath("simple.xml"))
' Charger XSL
set xsl = Server.CreateObject("Microsoft.XMLDOM")
xsl.async = false
xsl.load(Server.MapPath("simple.xsl"))
' Transformer le fichier
Response.Write(xml.transformNode(xsl))
%>

Explication de l'exemple

  1. Le premier bloc de code crée une instance de l'analyseur XML de Microsoft (XMLDOM) et charge le fichier XML en mémoire
  2. Le second bloc de code crée une autre instance d'analyseur et charge le fichier XSL en mémoire
  3. La dernière ligne de code utilise un document XSL pour transformer le document XML et envoie le résultat en tant que HTML au navigateur. Terminé !

Regardons comment le code ci-dessus fonctionne

Enregistrer XML en fichier via ASP

Cette instance ASP créera un document XML simple et le sauvegardera sur le serveur :

<%
"<note>"
text=text & "<to>George</to>"
text=text & "<from>John</from>"
text=text & "<heading>Rappel</heading>"
text=text & "<body>N'oubliez pas la réunion !</body>"
text=text & "</note>"
set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")
xmlDoc.async="false"
xmlDoc.loadXML(text)
xmlDoc.Save("test.xml")
%>