Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > XML > SimpleXML
SimpleXML Forum d'entraide pour l'extension SimpleXML, qui permet de manipuler des documents XML en PHP (approche DOM).
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/07/2007, 10h21   #1
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
Par défaut [SimpleXML] Afficher l'XML

Bonjour,

est-il possible d'afficher le contenu d'un XML créé dynamiquement via php ?
Code :
1
2
3
4
<?php
$file = "http://localhost/php/getAnnonces.php";
$xml = simplexml_load_file(rawurlencode($file));
?>
J'ai regardé les méthodes de SimpleXML mais rien ne permet l'affichage complet du XML. Genre :
Code XML :
1
2
3
4
<?xml version="1.0" encoding="UTF-8"?>
<racine>
...
</racine>

Merci d'avance.
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 11h57   #2
Expert Confirmé Sénior
 
Avatar de GrandFather
 
Inscription : mai 2004
Messages : 4 490
Détails du profil
Informations personnelles :
Âge : 42

Informations forums :
Inscription : mai 2004
Messages : 4 490
Points : 5 049
Points : 5 049
Bonjour,
Citation:
Envoyé par Tchupacabra
J'ai regardé les méthodes de SimpleXML mais rien ne permet l'affichage complet du XML.
Et SimpleXMLElement->asXML() ?
__________________
FAQ XML
------------
« Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
Giacomo Leopardi
GrandFather est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 12h22   #3
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
heu.. excuse moi mais je ne vois pas comment passer d'un objet XML ($xml) à un SimpleXMLElement avec mon code...
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 13h52   #4
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Votre variable $xml en est déjà un qui correspond à la racine :
Code :
1
2
3
4
5
$file = "http://localhost/php/getAnnonces.php";
$xml = simplexml_load_file(rawurlencode($file));
 
header('Content-type: text/plain');
echo $xml->asXML();
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 19h45   #5
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
je viens d'essayer...
cet XML :
Code XML :
1
2
3
4
5
6
7
8
9
10
<annonces>
    <annonce id="1">
        <type>Vente</type>
        <categorie>Maison</categorie>
        <titre>Belle propriété en centre ville</titre>
        <description>En plein centre ville, jardin, garage et véranda</description>
        <ville>Alençon</ville>
    </annonce>
    [...]
</annonces>
m'affiche :
Code :
VenteMaisonLocationAppartementVentePropriété de caractèreVenteMaisonVenteAppartement


Sachant que je souhaite afficher l'XML complet (balise + data)...
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/07/2007, 21h45   #6
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
Comportement normal si vous regardez uniquement ce qu'affiche votre navigateur. Editez la source, les balises sont là, changez l'entête (header('Content-type: text/xml') ou header('Content-type: text/plain')) ou appliquez une fonction comme htmlentities.

Cela dit il n'y aucun intérêt à passer par SimpleXML si c'est uniquement pour rebalancer le document XML (à moins d'en remettre en cause la validité) : autant passer par file_get_contents si allow_url_fopen est à on ou autre.
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/07/2007, 16h02   #7
Membre habitué
 
Inscription : octobre 2005
Messages : 641
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 641
Points : 143
Points : 143
ok merci beaucoup pour ces infos...
Tchupacabra est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2009, 14h05   #8
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 859
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 859
Points : 260
Points : 260
Bonjour à vous,

Je cherche depuis un bout de temps, mais rien à faire.
J'ai un XML et un XSL (qui ne se connaissent pas).

Dans le code, j'aimerais lier le XSL au XML et l'afficher avec le format défini dans le XSL (qui est du HTML valide).

Mais rien à faire... Je n'arrive même pas à afficher quelque chose de formaté même quand le XSL est lié au XML dans le fichier.
Toutes les chaines s'affichent les unes à la suite des autres.

Pouvez vous m'aider ?

Merci d'avance.
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/09/2009, 15h45   #9
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 859
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 859
Points : 260
Points : 260
J'ai fait ça :
Code :
1
2
3
4
5
6
7
	$xml = new DOMDocument();
	$xml->load("../xml/".$idProcedure.".xml");
	$xsl = new DOMDocument;
	$xsl->load("../xml/init.xsl");
	$proc = new XSLTProcessor();
	@$proc->importStyleSheet($xsl);
	echo $proc->transformToXML($xml);
Ca fonctionne mais ça me renvoie les warnings:
Code :
Warning: XSLTProcessor::importStylesheet() [xsltprocessor.importstylesheet]: xsl:version: only 1.0 features are supported in C:\wamp\www\Mael\api\divObjet.php on line 24
De plus, j'ai des caractères qui ne passent pas... (le ° par exemple)
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/10/2009, 09h59   #10
Membre confirmé
 
Avatar de dacid
 
Homme
Inscription : juin 2003
Messages : 859
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations forums :
Inscription : juin 2003
Messages : 859
Points : 260
Points : 260
C'est bon, j'ai fait ça:
Code :
1
2
3
4
5
6
7
8
	$xml = new DOMDocument();
	$xml->load("../xml/".$idProcedure.".xml");
	$xsl = new DOMDocument;
	$xsl->load("../xml/init.xsl");
	$proc = new XSLTProcessor();
	$proc->importStyleSheet($xsl);
	$proc->registerPHPFunctions();
	echo utf8_encode($proc->transformToXML($xml));
Et ça a l'air de fonctionner.
__________________
David.
dacid est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h18.


 
 
 
 
Partenaires

Hébergement Web