IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

XML brut (avec balises) dans div HTML


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 11
    Points
    11
    Par défaut XML brut (avec balises) dans div HTML
    Bonjour,

    J'aimerai afficher proprement du code XML brut dans une div HTML. De préférence avec les + et -.

    Je développe une appli pour permettre la visualisation de fichiers XML composée de :

    - 1 div affichant le code XML brut
    - 1 div affichant un menu de liens étant en fait des noms de balises
    - 1 div affichant les balises et les valeurs dans des champs input. Ce sont les balises contenues dans celles que l'on aura sélectionné dans le menu et on pourra modifier leurs valeurs

    Pour les 2 dernières div j'utilise SimpleXML et DOM mais concernant la première je n'arrive pas à obtenir ce que je souhaite.

    Exemple de code XML simplifié :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <xml xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Devlt\ISEP\SchemaXML\Contrib\contrib.xsd">
    	<Header IDSession="String">
    		<NOMDOMAINE>D</NOMDOMAINE>
    		<NBDOCUMENTS>2</NBDOCUMENTS>
    	</Header>
    	<Content>
    		<Emetteur>
    			<DPT>00</DPT>
    			<CPOS>44261</CPOS>
    		</Emetteur>
    		<Destinataire>
    			<NOM1>Cain</NOM1>
    			<NOM2></NOM2>
    			<LPRENOM>Deckard</LPRENOM>
    		</Destinataire>
    		<RefDos>
    			<LCIVCOR>M.</LCIVCOR>
    			<NOMCOR>Dupont</NOMCOR>
    			<PRENOMCOR>Jean</PRENOMCOR>
    		</RefDos>
    		<Contrib>
    			<CPOSRSQ>78000</CPOSRSQ>
    			<LBURRSQ>VERSAILLES</LBURRSQ>
    		</Contrib>
    		<Date>
    			<HEURE></HEURE>
    			<JOUR>04</JOUR>
    			<MOIS>04</MOIS>
    			<ANNEE>2012</ANNEE>
    		</Date>
    		<LIST_Var NB_ITERATIONS="2">
                <Var Nom="intitule_poste"><Valeur>BETATESTEUR</Valeur></Var>
                <Var Nom="lieu_travail"><Valeur>31 Garonne (Haute)</Valeur></Var> 
            </LIST_Var>
     
    	</Content>
     
    	<Content>
    		<Emetteur>
    			<DPT>68</DPT>
    			<CPOS>68954</CPOS>
    		</Emetteur>
    		<Destinataire>
    			<NOM1>Test</NOM1>
    			<NOM2></NOM2>
    			<LPRENOM>Le</LPRENOM>
    		</Destinataire>
    		<RefDos>
    			<LCIVCOR>M.</LCIVCOR>
    			<NOMCOR>Dupond</NOMCOR>
    			<PRENOMCOR>Paul</PRENOMCOR>
    		</RefDos>
    		<Contrib>
    			<CPOSRSQ>750014</CPOSRSQ>
    			<LBURRSQ>DENFERT</LBURRSQ>
    		</Contrib>
    		<Date>
    			<HEURE></HEURE>
    			<JOUR>05</JOUR>
    			<MOIS>06</MOIS>
    			<ANNEE>2012</ANNEE>
    		</Date>
    		<LIST_Var NB_ITERATIONS="3">
                <Var Nom="intitule_poste"><Valeur>COMMERCIAL</Valeur></Var>
                <Var Nom="exper_prof"> <Valeur>Experience de 3 ans</Valeur></Var> 
                <Var Nom="sect_activ"><Valeur>COMMERCE D ARTICLES DE SPORTS</Valeur> </Var>
            </LIST_Var>
     
    	</Content>

    Dans la première div, je souhaite afficher les balises <Content> et ce qui se trouve à l'intérieur.

    Les balises <Emetteur>, <Destinataire>, <RefDos>, <Contrib>, et <Date> se trouveront dans tout les fichiers que j'aurai à afficher et les balises qu'elles contiennent seront identiques, seul les valeurs changeront.
    La balise <LIST_Var> sera présente ou non dans les fichiers, et pourra contenir un nombre indéfini de balises <Var Nom="...">.

    J'espère avoir été clair

    Merci !

    Fred

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Pour ce que tu veux faire, le mieux n'est pas de parser le XML pour produire un HTML mais de le transformer avec une XSLT.
    Tu as tout ce qu'il faut en PHP pour faire ça correctement:

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    J'avais entendu parler du XSL en effet, mais il n'y a pas d'autres solutions ?
    Ce langage ne me parle pas vraiment :/
    Il permet de faire en sorte que les balises XML ne soit pas interprétées par le navgateur et affichées comme du texte ?

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Points : 7 762
    Points
    7 762
    Par défaut
    Alors si le but c'est de sortir du XML au niveau du navigateur, ça se fait très simplement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    header('Content-type: text/xml');
    $xml = <<< EOXML
    <?xml version="1.0">
    <root>
      <foo>
        <bar>Hello</bar>
      </foo>
      <foo>
        <bar>Peter</bar>
      </foo>
    </root>
    EOXLML;
     
    echo $xml;
    Une XSLT sert un autre but: elle sert à transformer le XML dans un autre format (HTML pour nous) selon un mécanisme de reconnaissance de chemins / valeurs, d'expressions conditionnelles et de boucles.

    Enfin, pour afficher "brutalement" du XML dans du HTML, c'est désespérément simple aussi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?php
    $xml = <<< EOXML
    <?xml version="1.0">
    <root>
      <foo>
        <bar>Hello</bar>
      </foo>
      <foo>
        <bar>Peter</bar>
      </foo>
    </root>
    EOXLML;
     
    echo "<h2>Mon XML</h2>";
    echo "<pre>" . htmlspecialchars($xml) . "</pre>";

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Points : 11
    Points
    11
    Par défaut
    Merci !

    J'ai réussi à obtenir ce que je voulais en couplant ça avec simpleXML.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		$simpleXML = simplexml_load_file($cheminFichier.$nomFichier);
    		foreach($simpleXML->Content as $contents){
    			foreach($contents->children() as $content){
    				$chaineXML2 = $content ->asXML();
    				echo '<pre style="font-size:medium;">' . htmlspecialchars($chaineXML2) . '</pre>';
    			}
    		}

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/08/2007, 14h08
  2. Réponses: 1
    Dernier message: 03/08/2007, 13h25
  3. [DOM] DOM avec <table> dans <div>
    Par mavvv dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 09/02/2006, 15h53
  4. [XML] Incorporation de balises HTML dans fichier XML
    Par wazzzzza dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 26/07/2005, 14h17
  5. cellule d'une table visible avec focus dans div scrollable
    Par echecetmat dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/03/2005, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo