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

  FORUM HardWare.fr
  Programmation
  XML/XSL

  Insérer du code xml dans un xhtml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Insérer du code xml dans un xhtml

n°1548673
fils_de_la​_lumiere
Posté le 25-04-2007 à 14:52:22  profilanswer
 

Bonjour, j'ai besoin de mélanger dans un même document du code xhtml et xml afin de le récupérer et le manipuler à partir de javascript par la suite. J'ai donc écris naïvement ce code en me doutant qu'il y a un problème :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/dtD/xhtml1-strict.dtd">
  2. <html xml:lang="fr" lang="fr" xmlns="http://www.w3.org/1999/xhtml" xmlns:monxml="http://www.w3.org/TR/REC-xml">
  3. <head>
  4.   <title>...</title>
  5. </head>
  6. <body>
  7.   <div>blabla</div>
  8.   <monxml:album id="mabalisexml">blabla</monxml:album>
  9. </body>
  10. </html>


Le problème c'est que ce code ne passe pas la validation et fonctionne pas super non plus :d  
 
La balise "monxml:album" contiendra un document xml et devrait normalement être en xml "pur", pas en xhtml et donc pas interprétée par les navigateurs. Avez-vous une idée?

mood
Publicité
Posté le 25-04-2007 à 14:52:22  profilanswer
 

n°1548674
MagicBuzz
Posté le 25-04-2007 à 14:55:32  profilanswer
 

c'est à dire ? tu veux afficher le code c'est ça ?
 
balise <pre>
 
par contre, cela ne t'affranchis pas il me semble d'échapper les caractères spéciaux tels que :
 
<, > et &

n°1548771
rx__
Paint It Black
Posté le 25-04-2007 à 17:54:31  profilanswer
 

fils_de_la_lumiere a écrit :

Le problème c'est que ce code ne passe pas la validation et fonctionne pas super non plus :d


A mon avis ça ne valide pas parce que tu as un doctype xhtml, donc le browser ne s'attend pas à trouver un élément monxml:album en plein milieu. Si tu veux y ajouter un document à toi j'imagine que tu dois l'étendre (ceci est intéressant http://dionidium.com/2004/05/xhtml-tests).
 
Par contre j'imagine que tu comptes générer du xhtml à partir de ton album en le manipulant le DOM et le retirer complètement? Il faut voir à quel moment cette manipulation est faite. Peut-être que si elle a lieu avant que le browser ne valide la page ça passera...

n°1548777
anapajari
s/travail/glanding on hfr/gs;
Posté le 25-04-2007 à 18:06:21  profilanswer
 

perso je ferais un coup de xslt pour faire xml=>xhtml  avant de taper en js dessus.

n°1548831
MagicBuzz
Posté le 25-04-2007 à 20:12:34  profilanswer
 

ben justement, là est la question : il s'agit d'afficher un bloc de code source XML, ou afficher le contenu de ce flux XML ?
si c'est la seconde réponse alors comme anapajai a dit, il faut passer par un XSL...

n°1548858
fils_de_la​_lumiere
Posté le 25-04-2007 à 21:10:53  profilanswer
 

En fait je récupère du code xhtml en ajax pour mettre à jour un élément div principal (classique quoi :o ) mais aussi quelque autres petits éléments textuels de la page et pour cela j'aimerai inclure dans ce code xhtml du code xml.

n°1548894
rx__
Paint It Black
Posté le 25-04-2007 à 22:27:29  profilanswer
 

Je viens de faire un petit test avec Firefox de ce que je disais, deux constatations
- le fait de mettre un élément que j'ai défini moi-même ne le gêne pas, il ne traite pas le tag (foo) mais il prend le texte qu'il contient (bar)
- pas de problème non plus si on retire le noeud via le DOM.
 
Si ça peut t'inspirer, voilà le code:

Code :
  1. <?php
  2. header("Content-type: " .
  3.  (stristr($_SERVER["HTTP_ACCEPT"], "application/xhtml+xml" ) ? "application/xhtml+xml" : "text/html" ));
  4. echo("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" );
  5. ?>
  6. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  7. <html xmlns="http://www.w3.org/1999/xhtml">
  8. <head>
  9. <meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
  10. </head>
  11. <script type="text/javascript">
  12. // <![CDATA[
  13. function init() {
  14.  var foo = document.getElementsByTagNameNS("urn:foo", "foo" )[0];
  15.  foo.parentNode.removeChild(foo);
  16. }
  17. // ]]>
  18. </script>
  19. <body onload="init();">
  20. <foo xmlns="urn:foo">bar</foo>
  21. </body>
  22. </html>

n°1549097
fils_de_la​_lumiere
Posté le 26-04-2007 à 03:53:45  profilanswer
 


merci, le script me met sur la piste pour la suite mais le code ne passe pas le validator
 
Error  : there is no attribute "xmlns".
Error  : element "foo" undefined.

n°1549169
rx__
Paint It Black
Posté le 26-04-2007 à 10:03:12  profilanswer
 

Oui, j'ai bien peur que pour pouvoir passer le test de validation il faille étendre le DTD xhtml1-strict...

n°1549276
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-04-2007 à 10:27:58  profilanswer
 

vu que t'as l'air partie en full js, pourquoi ne pas faire un xsltProcessor ( en js hein) pour transformer ton xml en xhtml "valide".

mood
Publicité
Posté le 26-04-2007 à 10:27:58  profilanswer
 

n°1549607
rx__
Paint It Black
Posté le 26-04-2007 à 12:59:29  profilanswer
 

Parce que la fonction est déjà offerte en javascript par les browsers. :whistle:
Voir ceci aussi http://code.google.com/p/ajaxslt/.

n°1549611
fils_de_la​_lumiere
Posté le 26-04-2007 à 13:05:43  profilanswer
 

car je veux faire ça en une requête, je veux recevoir le code xhtml + d'autres infos en xml dans la même réponse. Sinon je peux demander au serveur de renvoyer un truc du genre pour récuperer les valeurs en js mais c'est très crade je trouve :
 

Code :
  1. <form action="blabla">
  2. <input type="hidden" id="param1" value="value1" />
  3. <input type="hidden" id="param2" value="value2" />
  4. </form>
  5. <div>code xhtml</div>

n°1549736
anapajari
s/travail/glanding on hfr/gs;
Posté le 26-04-2007 à 14:03:46  profilanswer
 

rx__ a écrit :

Parce que la fonction est déjà offerte en javascript par les browsers. :whistle:
Voir ceci aussi http://code.google.com/p/ajaxslt/.


NO KIDDIN ?!?!
et ça s'appelle comment hein? A bin en faisant "new XSLTProcessor" ... http://developer.mozilla.org/en/do [...] formations
edit avant qu'on me reprenne: sous IE pas besoin


Message édité par anapajari le 26-04-2007 à 14:04:44

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

  Insérer du code xml dans un xhtml

 

Sujets relatifs
Problème avec Wamp et code PHPCode Asm pour réaliser un délais d'1 minute
code html tv[Javascript] Insérer un retour à la ligne dans un textarea [résolu]
[PostGreSQL] Inserer une requete dans un champ ?utiliser du code LGPL
Code de lecteurinserer un calendrier modifiable sur page web
Eclipse: insérer image dans la palette[xhtml 1.0] quel est le code en xhtml qui permet d'inserer du flash ??
Plus de sujets relatifs à : Insérer du code xml dans un xhtml


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