Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1305 connectés 

  FORUM HardWare.fr
  Programmation
  XML/XSL

  inserer du texte avec des balises html dans un document xml

 

 

 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

inserer du texte avec des balises html dans un document xml

n°1001734
Lunatik3
Serial nounours
Posté le 05-03-2005 à 13:51:36  profilanswer
 

Bonjour.  
 
Je me suis mis dans l'idée de generer l'interface de mon site en php  avec xml/xsl.
 
Et la je suis un peu ennuyé. j'utilise la librairie domDocument de php et j'aimerais placer ,entre balise, un texte contenant lui meme des balises HTML.
Le probleme vient du faite que j'aimerais que ces balises soit interprétées et non ignorées (si on utilise <!CDATA[]]>, par exemple) j'ai cherché une fonctions me permettant de faire ça et pour le moment j'ai pas trouvé. j'aurais donc besoins de vos lumieres pour m'eclairer un peu. merci.  
 
(j'ai fais une recherche sur le forum et le seule post que j'ai trouvé qui corresponde a mon pb n'as pas eu de reponse
http://forum.hardware.fr/forum2.ph [...] 0&subcat=0
)
 
merci d'avance
 

mood
Publicité
Posté le 05-03-2005 à 13:51:36  profilanswer
 

n°1001737
FlorentG
Posté le 05-03-2005 à 13:59:08  profilanswer
 

Et avec des espaces de noms, ça marche ?

n°1001744
Lunatik3
Serial nounours
Posté le 05-03-2005 à 14:12:54  profilanswer
 

des namespaces?
 
sinon voila en faite ce que je fais pour le moment :)
 
 

Code :
  1. $newsElement->appendChild($this->createCdataSection($new->texte));


 
je recupere mon texte contenant des balises html ($news->texte)
je creeait une section CDATA et place le texte dedans.
 
j'ai donc

Code :
  1. <news date="2005-02-23">
  2. <![CDATA[Ouverture du site en beta. <img src="images/smileys/clindoeil.gif" alt=";)" />]]>
  3. </news>


seulement voila c'est logique mon texte etant placé en placé en CDATA et bien ma balise IMG n'est pas interprétée. ce que je veux au final moi c'est:

Code :
  1. <news date="2005-02-23">
  2. Ouverture du site en beta. <img src="images/smileys/clindoeil.gif" alt=";)" />
  3. </news>


 
c'est clair comme ça?
 
 
merci :)
 

n°1001848
Lunatik3
Serial nounours
Posté le 05-03-2005 à 17:37:19  profilanswer
 

J'ai reussi. mais alors c'est peu etre pas un symbole d'optimisation
 
j'ai fait une function:

Code :
  1. private function insertTexte($nombalise,$texte){
  2.   $dom = new DOMDocument('1.0', 'iso-8859-1');
  3.   $dom->loadXML("<?xml version=\"1.0\" encoding=\"iso-8859-1\"?><$nombalise>$texte</$nombalise>" );
  4.   $items = $dom->getElementsByTagName($nombalise);
  5.   $dom = $this->importNode($items->item(0),true);
  6.   return $dom;
  7. }


 
je place en paramettre le nom de la balise et le texte contenant des balises
je le charge dans un document xml et je renvoie le noeud creer.
 
un peu tordu. si quelqu'un a des idée pour ammélioré ça je suis preneur :)
 
 
 

n°1002532
FlorentG
Posté le 06-03-2005 à 12:28:09  profilanswer
 

Avec les espaces de noms, ça aurait donné un truc du genre :

Code :
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE pouet SYSTEM "ta-dtd.dtd">
  3. <pouet xmlns:xhtml="http://www.w3.org/1999/xhtml">
  4.   <news date="2005-02-23">
  5.     Ouverture du site en beta. <xhtml:img src="images/smileys/clindoeil.gif" alt=";)"
  6.   </news>
  7. </pouet>


Comme ça tu peux importer des éléments provenant d'ailleurs. Mais il faut que la DTD inclus ET tes éléments, ET la DTD xhtml :)

n°1002538
Lunatik3
Serial nounours
Posté le 06-03-2005 à 12:48:05  profilanswer
 

Sympa les namespaces, mais la en faite ça n'aurais pas resolu mon probleme.  
Par contre ça le complete si je veux faire un code bien clean.  
 
merci bien :)

n°1005823
Lunatik3
Serial nounours
Posté le 08-03-2005 à 18:36:36  profilanswer
 

Hum une question? comment tu ajoute "xmlns:xhtml="http://www.w3.org/1999/xhtml" a pouet, avec DOM s'il te plait?

n°1005829
FlorentG
Posté le 08-03-2005 à 18:40:01  profilanswer
 

Je sais pas :D

n°1005846
Lunatik3
Serial nounours
Posté le 08-03-2005 à 18:46:17  profilanswer
 

cool

n°1006139
benou
Posté le 08-03-2005 à 22:50:30  profilanswer
 

c'est un bête attribut, logiquement ...

mood
Publicité
Posté le 08-03-2005 à 22:50:30  profilanswer
 

n°1006200
Lunatik3
Serial nounours
Posté le 08-03-2005 à 23:48:37  profilanswer
 

ba ouai mais a premiere vu il s'affichais pas dans la balise.  
 
au passage, comment afficher un commentaire de la feuille de style XSL au navigateur: en gros je voudrais ça
 

Code :
  1. ....<head>
  2.  <title>pllune ::: graphisme, photoshop, painter</title>
  3.  <!-- compliance patch for microsoft browsers -->
  4.  <!--[if lt IE 7]>
  5.  <script src="/ie7/ie7-standard.js" type="text/javascript">
  6.  </script>
  7.  <![endif]-->
  8.  <link rel="stylesheet" href="style2.css" />
  9.  <script type="text/javascript" src="js/scroll.js"></script>
  10.  <script type="text/javascript" src="js/fonctions.js"></script>....


 
dans ma page html en sortie. or par defaut XSL supprime les commentaire :D
 
merki

n°1006270
benou
Posté le 09-03-2005 à 01:03:02  profilanswer
 

t'as qu'à modifier l'affichage par défaut des commentaire de ta xsl :  

<xsl:template match="comment()">
  <xsl:comment><xsl:value-of select="." /></xsl:comment>
 </xsl:template>


Message édité par benou le 09-03-2005 à 01:03:10
n°1006347
Lunatik3
Serial nounours
Posté le 09-03-2005 à 08:52:35  profilanswer
 

c'est les xsl:comment que je cherchais :D
 
par contre pas glop  
 

Code :
  1. # [if lt IE 7]>
  2. #         <script src="/ie7/ie7-standard.js" type="text/javascript">
  3. #         </script>
  4. #         <![endif]


 
entre balise il aime pas trop.  
 
tant pis. je mettrais testerais pas le hack IE7. merci

n°1006577
benou
Posté le 09-03-2005 à 11:34:28  profilanswer
 

Lunatik3 a écrit :

entre balise il aime pas trop.  
tant pis.


j'ai pas bien compris le problème

n°1006636
Lunatik3
Serial nounours
Posté le 09-03-2005 à 12:16:59  profilanswer
 

en faite j'ai ça: a mette en commentaire:

Code :
  1. # [if lt IE 7]>
  2.          <script src="/ie7/ie7-standard.js" type="text/javascript">
  3.          </script>
  4.          <![endif]


 
et c'est pas valide avec la syntaxe xhtml. car au final ce qui doit etre placé c'est:
 

Code :
  1. # <!--[if lt IE 7]>
  2.          <script src="/ie7/ie7-standard.js" type="text/javascript">
  3.          </script>
  4.          <![endif]-->


 
donc le <![CDATA[]> est pas utilisable :)

n°1006717
benou
Posté le 09-03-2005 à 13:22:17  profilanswer
 

déprès mes tests, ca ca marche :  

<xsl:template match="comment()">
  <xsl:text disable-output-escaping="yes"><![CDATA[<!--]]></xsl:text><xsl:value-of select="." disable-output-escaping="yes"/><xsl:text disable-output-escaping="yes"><![CDATA[-->]]></xsl:text>
 </xsl:template>

n°1007233
Lunatik3
Serial nounours
Posté le 09-03-2005 à 19:48:15  profilanswer
 

alors ça doit surement marcher si le commentaire est dans le fichier xml. Or la j'ai tester mon commentaire ce trouve dans mon fichier XSL. et pas moyen pour le moment de l'afficher.  
 
merci quand meme :)

n°1007248
benou
Posté le 09-03-2005 à 20:09:49  profilanswer
 

faut comprendre ce que tu veux ... :/
je regarde ...

n°1007249
benou
Posté le 09-03-2005 à 20:14:02  profilanswer
 

:heink: ca marche très bien avec un CDATA  
 

<xsl:template match="BBB">
   <xsl:text disable-output-escaping="yes"><![CDATA[<!--[if lt IE 7]>  
         <script src="/ie7/ie7-standard.js" type="text/javascript">  
         </script>  
         <![endif]-->]]></xsl:text>
 </xsl:template>


Message édité par benou le 09-03-2005 à 20:15:13
n°1008168
Lunatik3
Serial nounours
Posté le 10-03-2005 à 13:40:49  profilanswer
 

:) et a la sortie j'ai ça:
 

Code :
  1. & lt;script src="/ie7/ie7-standard.js" type="text/javascript"& gt; 
  2.          & lt;/script&gt; 
  3.          & lt;![endif]--& gt;


 
 
bref c'est pas grave. laisse tombé. merci de ton aide. c'est sympa :) mais j'ai laissé tombé ça. je me dis que ça en vaux pas la peine pour le moment.  
 
merci beaucoup quand meme :)  

n°1008491
benou
Posté le 10-03-2005 à 16:21:54  profilanswer
 

moi avec cette XSL

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
   
 <xsl:template match="/">
   <xsl:text disable-output-escaping="yes"><![CDATA[<!--[if lt IE 7]>  
         <script src="/ie7/ie7-standard.js" type="text/javascript">  
         </script>  
         <![endif]-->]]></xsl:text>
 </xsl:template>
 
</xsl:stylesheet>


 
j'ai ca :

<?xml version="1.0" encoding="UTF-8"?><!--[if lt IE 7]>  
         <script src="/ie7/ie7-standard.js" type="text/javascript">  
         </script>  
         <![endif]-->

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  XML/XSL

  inserer du texte avec des balises html dans un document xml

 

Sujets relatifs
Rechercher dans un document pdf !?[Résolu] [Html] Doctype : meilleur affichage sans !
récupérer le texte dans un menu déroulantLecteur média player dans page HTML
Mettre en forme de l'html généré par PHP [resolu(tu m'étonnes :p)][Conseils]Mise en page contenant plein d'élément gif avec CSS ou HTML
défilement du texte et marquee[html] Pourquoi c'est pas la même font ?
extraction du contenu de balisesparent.document.toto vs parent.document.getElementById("toto")
Plus de sujets relatifs à : inserer du texte avec des balises html dans un document xml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR