Parser un fichier xml avec domxml et le mettre en forme avec xslt

Soyez le premier à donner votre avis sur cette source.

Snippet vu 28 473 fois - Téléchargée 27 fois

Contenu du snippet

Ce code va vous permettre :

- parser un fichier xml
- mettre en forme le fichier xml avec xslt

L'extension utilisé est DomXml/DomXslt.
Un bout d'application est présenté ici, un carnet d'adresse.

Le fichier carnet.xml contient les données du carnet d'adresse.
Le fichier carnet.xsl permet la mise en forme des données xml.
Le fichier carnet.php permet de parser et de mettre en forme le fichier xml dynamiquement via php.

Source / Exemple :


- carnet.xml :

<?xml version="1.0" encoding="ISO-8859-1"?>
<carnet>
	<personne>
		<nom>DUPONT</nom>
		<prenom>Pierre</prenom>
		<age>17</age>
	</personne>
	<personne>
		<nom>DUPONT</nom>
		<prenom>Jacky</prenom>
		<age>46</age>
	</personne>
	<personne>
		<nom>DUPONT</nom>
		<prenom>René</prenom>
		<age>23</age>
	</personne>
</carnet>

- carnet.xsl :

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" indent="no"/>
<xsl:template match="/">
	<html>
		<head>
			<meta name="author" content="orion"/>
			<style type="text/css">
			.bg-0 { background-color: #efefff; }
			.bg-1 { background-color: #efffef; }
			</style>
		</head>
		<body bgcolor="white" text="black">
		<table><xsl:apply-templates match="carnet"/></table>
		</body>
	</html>
</xsl:template>

<xsl:template match="carnet">
	<xsl:for-each select="personne">
		<tr class="bg-{position() mod 2}">
			<td>Nom: <xsl:value-of select="nom"/></td>
			<td>Prenom: <xsl:value-of select="prenom"/></td>
			<td>Age: <xsl:value-of select="age"/> ans</td>
		</tr>
	</xsl:for-each>
</xsl:template>
</xsl:stylesheet>

- carnet.php :

<?php
$xml = domxml_open_file('carnet.xml');
$xsl = domxml_xslt_stylesheet_file('carnet.xsl');
$html = $xsl->process($xml);
echo $html->dump_mem();
?>

Conclusion :


Bon courage.

A voir également

Ajouter un commentaire Commentaires
Pierro246 Messages postés 3 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 6 mars 2007
6 mars 2007 à 21:14
Faut que tu installe le module domxml :) regarde dans le menu d'easyphp ;)
cs_cutch Messages postés 13 Date d'inscription samedi 10 mai 2003 Statut Membre Dernière intervention 14 mai 2007
20 janv. 2007 à 13:41
Salut
J'utilise easyphp1.8, mais il me met une erreur
"Fatal error: Call to undefined function: domxml_open_file()"
j'ai aussi tester avec Wamp5 et tjrs la meme erreur
Qu'est ce que je peut faire pour que ca fonctionnne ?
merci
boussi_85 Messages postés 1 Date d'inscription jeudi 9 novembre 2006 Statut Membre Dernière intervention 10 novembre 2006
10 nov. 2006 à 12:37
j ai besoin d effectuer la supression et la mise a jour avec des check box.
using DOM , XML et php

merci :)
juki_webmaster Messages postés 947 Date d'inscription mercredi 19 novembre 2003 Statut Membre Dernière intervention 5 avril 2008 3
21 juil. 2006 à 19:25
PaTaTe : Si sa crash, remet à jour ton php: http://snaps.php.net/
Et si sa crash encore une fois, fait un rapport de bugs sur http://bugs.php.net/
cs_PaTaTe Messages postés 2107 Date d'inscription mercredi 21 août 2002 Statut Contributeur Dernière intervention 19 février 2021 2
4 juil. 2006 à 21:09
J'ai une opération non conforme sur php4ts.dll quand j'essaie d'accéder à mon XML avec ce code

Quelqu'un sait pourquoi ?
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.