Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Homme Profil pro sebastien morais
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Nom : Homme sebastien morais
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : décembre 2011
    Messages : 2
    Points : 2
    Points
    2

    Par défaut Problème de conservation des balises XML

    Bonjour,

    Sur mon site, j'ai un XML qui contient le texte de mon site dépendamment la langue choisi, ainsi que leurs balises HTML(p, ul, li,...). Je désire allez chercher ses balises telles qu'elles avec le texte, mais lorsque je vais le cherchez ($contenu->getElementsByTagName("text")->item(0)->nodeValue ), je perd mes balises et il n'y a que le texte qui apparait. J'ai essayé de convertir mes balises avec htmlentities() avant d'aller les chercher et de le reconvertir en balise avec html_entity_decode(), mais les tentatives ont échoué.

    Merci d'avance pour vos conseils,
    Keldus
    Étudiant en programmation Web

    P.S:Voici mon code:
    XML:

    Code :
    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
    <tkd>
    	<tkdtexte>
    		<content lang="fr">
    			<title></title>
    			<text>
    				<p>Fondé depuis plus de 30 ans, le club Taekwondo Anjou est formé d'une équipe des plus professionnelle.</p>
    				<p>Des instructeurs qualifiés sont à votre disposition pour des entrainements agréables et sécuritaires. Tous ont une formation de RCR et de premiers soins.</p>
    				<p>La pratique du Taekwondo est offerte à tous. Ce sport procure un bon conditionnement physique et améliore la souplesse et la coordination des mouvements. De plus, cet art favorise la discipline, la confiance en soi et un bon équilibre de l'esprit.</p>
    				<p>Le Taekwondo est une discipline olympique.</p>
    				<p>Le club Taekwondo Anjou vous founit des équipements adéquats comme:</p>
    					<ul>
    						<li>plastron</li>
    						<li>casque</li>
    						<li>cible de frappe de toutes grandeurs</li>
    						<li>cordes à danser</li>
    					</ul>
    				<p>Cours pour enfants de 6 ans à 12 ans, débutants et avancers.</p>
    				<p>Cours pour adultes de 13 ans et plus, debutants et avancers.</p>
    				<h3>Au plaisir de vous voir dans notre groupe d'élèves des plus dynamiques.</h3>Ce que je veux garder intacte
    			</text>
    		</content>
    		<content lang="en">
    			<title>New site</title>
    			<text>Welcome to our new Website</text>
    		</content>
    	</tkdtexte>
    </tkd>
    La classe qui va chercher le XML:


    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    class TexteData extends XmlData {
     
    	public function lireDonnees($lan) {
    		$objetsTextetab = array();
    		$doc = $this->obtenirDocXML();
    		$textes = $doc->getElementsByTagName("tkd");
    		foreach($textes as $texte) {
    				$lesContenus = $texte->getElementsByTagName("content");
    				foreach($lesContenus as $contenu) {
    					if($contenu->getAttribute("lang")==$lan) {
    						$titre = $contenu->getElementsByTagName("title")->item(0)->nodeValue;
    						$texte = $contenu->getElementsByTagName("text")->item(0)->nodeValue;
    						break;
    					}
    				}
    				$objTexte = new Texte($titre,$texte);
    				$objetsTextetab[] = $objTexte;
    		}
    		return $objetsTextetab;
    	}
    }
    Et la façon dont j'importe les balises dans ma page PHP:

    Code :
    1
    2
    3
    4
    5
    6
    7
    include("classes/texte.cls.php");
    include("classes/texte_data.cls.php");
    $textesData = new TexteData("data/texteIndex.xml");
    $textes = $textesData->lireDonnees($lan);
    foreach($textes as $texte) {
        echo $texte->getTexte();
    }

  2. #2
    Expert Confirmé Sénior Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 224
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 224
    Points : 4 062
    Points
    4 062

    Par défaut

    lorsque je vais le cherchez $contenu->getElementsByTagName("text")->item(0)->nodeValue ), je perd mes balises et il n'y a que le texte qui apparait.
    C'est normal. Pour conserver les balises il faut utiliser la méthode DOMDocument::saveXML( ) en donnant en paramètre le noeud à récupérer.
    http://www.php.net/manual/fr/domdocument.savexml.php
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    Invité de passage
    Homme Profil pro sebastien morais
    Étudiant
    Inscrit en
    décembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Nom : Homme sebastien morais
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : décembre 2011
    Messages : 2
    Points : 2
    Points
    2

    Par défaut

    Merci!! ça marche

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •