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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 27 973 fois - Téléchargée 25 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
-
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
-
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
-
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 -
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
1878
Date d'inscription
mercredi 21 août 2002
Statut
Contributeur
Dernière intervention
7 janvier 2019
-
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 ?

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.