documentation sur le dom

documentation sur le dom - XML/XSL - Programmation

Marsh Posté le 16-04-2003 à 20:19:05    

auriez vous de la doc sur le DOM.
En particulier l'utilisation du DOM avec javascript/IE pour manipuler un document XML.j'ai déjà fait des recherches mais si vous savez où je peux trouver de la doc correct et en francais si possible je vous remercie de me le dire.
++

Reply

Marsh Posté le 16-04-2003 à 20:19:05   

Reply

Marsh Posté le 16-04-2003 à 20:29:50    

y'en a qui cherchent, ça fait plaisir...
 
http://msdn.microsoft.com/library/ [...] e_5fuc.asp
 
lit l'article, puis navigue dans les lliens/exemples, tu y trouveras l'intégralité de la doc pour utiliser le XML/XSL côté client en JavaScript.
 
Attention, seul IE supporte cette fonction, le W3C n'ayant pas jugé utile qu'on puisse travailler côté client avec du XML.

Reply

Marsh Posté le 16-04-2003 à 20:59:23    

MagicBuzz a écrit :


lit l'article, puis navigue dans les lliens/exemples, tu y trouveras l'intégralité de la doc pour utiliser le XML/XSL côté client en JavaScript.
 
Attention, seul IE supporte cette fonction, le W3C n'ayant pas jugé utile qu'on puisse travailler côté client avec du XML.


 
Et la même chose pour Mozilla (d'après ce que j'ai compris du truc sur le site de Microsoft) :
http://www.mozilla.org/projects/xslt/js-interface.html
Bon y a probablement moins de possibilités...
http://www.w3.org/TR/xslt.html -> je sais pas si c'est bien de ça dont on parle ? :??:


Message édité par antp le 16-04-2003 à 21:01:56

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 21:05:26    

Ben disons que dans IE, on peut faire l'intégralité de tout ce qui est faisable côté serveur, que ce soit au niveau XML ou XSL, avant mais aussi et surtout APRES parsing, et le fin du fin, on peut modifier à la volée le XML et appliquer un XSL sans avoir à recharger.
 
Seul truc qui est bien domage, c'est que même si le W3C décide d'intégrer cette fonctionnalité dans la norme, vu que tu utilises le parseur DOM du navigateur (MSXML dans le cas de IE) le code est forcément spécifique au navigateur, du moins tant que la norme n'imposera pas un modèle d'objet)
 
Donc tout ce qu'on peut faire avec IE à l'heure actuelle, on ne pourra certainement jamais le faire sous les autres navigateur, à moins que le W3C adopte le modèle de l'objet MSXML, ce qui m'étonnerait grandement (domage, parceque je le trouve assez bien foutu :/)
 
Sinon, je lis ton article sur Moz, puis je te poste quelques exemple de ce qu'on peut faire avec IE.

Reply

Marsh Posté le 16-04-2003 à 21:06:57    

ouais enfin je connais que dalle là dedans hein, donc je saurai pas te dire si ce que tu fais dans IE marcherait dans Mozilla
j'ai juste tapé qques mots dans Google :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 21:09:14    

Antp > Pour l'article sur Moz, c'est en effet un début de ce qu'il y a dans IE, mais ça me semble au stade des prémices de l'alpha 0.1 non ? (je trouve ça super limité)
 
Par contre, chose qui est bien, l'objet s'appelle au moins pareil, c'est déjà pas mal. Par contre, je crois que les méthodes sont pas du tout les mêmes :/
Enfin, avec on objet de départ du même nom, je fais confiance à M$ pour faire des alias/overrides de leurs fonctions pour rendre compatible MSXML avec celui qui sera opté par le W3C au final.
 
Sinon, pour ton article du W3C, j'ai pas trouvé où ça parlait de ce dont on parle

Reply

Marsh Posté le 16-04-2003 à 21:15:25    

Exemple de ce qu'on peut faire avec IE :
 
Il s'agit du code que j'ai écrit dans une feuille XSL, qui permet de modifier le fichier XML mis en forme par cette stylesheet.
 

Code :
  1. function deleteBlock(index)
  2. {
  3.  for (var el = new Enumerator(document.XMLDocument.selectNodes("/article/body/block" )); !el.atEnd(); el.moveNext())
  4.  {
  5.   if (el.item().getAttribute("Index" ) == index)
  6.   {
  7.    document.XMLDocument.selectSingleNode("/article/body" ).removeChild(el.item());
  8.   }
  9.   else if (el.item().getAttribute("Index" ) > index)
  10.   {
  11.    el.item().setAttribute("Index", el.item().getAttribute("Index" ) - 1);
  12.   }
  13.   document.body.innerHTML = document.XMLDocument.transformNode(document.XSLDocument);
  14.  }
  15. }
  16. function addBlock(index, type)
  17. {
  18.  if (!verifPopup())
  19.  {
  20.   return false;
  21.  }
  22.  var i = 0;
  23.  if (index == 0)
  24.  {
  25.   for (var el = new Enumerator(blockModels.selectNodes("/article/block" )); !el.atEnd(); el.moveNext())
  26.   {
  27.    if (el.item().getAttribute("type" ) == type)
  28.    {
  29.     copyEl = el.item().cloneNode(true);
  30.     document.XMLDocument.selectSingleNode("/article/body" ).insertBefore(copyEl, null);
  31.    }
  32.   }
  33.   for (var el = new Enumerator(document.XMLDocument.selectNodes("/article/body/block" )); !el.atEnd(); el.moveNext())
  34.   {
  35.    el.item().setAttribute("Index", ++i);
  36.   }
  37.  }
  38.  else
  39.  {
  40.   for (var el = new Enumerator(blockModels.selectNodes("/article/block" )); !el.atEnd(); el.moveNext())
  41.   {
  42.    if (el.item().getAttribute("type" ) == type)
  43.    {
  44.     copyEl = el.item().cloneNode(true);
  45.    }
  46.   }
  47.   for (var elb = new Enumerator(document.XMLDocument.selectNodes("/article/body/block" )); !elb.atEnd(); elb.moveNext())
  48.   {
  49.    if (elb.item().getAttribute("Index" ) == index)
  50.    {
  51.     elold = elb;
  52.     document.XMLDocument.selectSingleNode("/article/body" ).insertBefore(copyEl, elold.item());
  53.    }
  54.   }
  55.   for (var el = new Enumerator(document.XMLDocument.selectNodes("/article/body/block" )); !el.atEnd(); el.moveNext())
  56.   {
  57.    el.item().setAttribute("Index", ++i);
  58.   }
  59.  }
  60.  document.body.innerHTML = document.XMLDocument.transformNode(document.XSLDocument);
  61.  document.finalForm.XML.value=document.XMLDocument.xml;
  62. }
  63. Avec "BlockModel" (écrit tel quel dans le code HTML) :
  64. <xml id="blockModels">
  65. <article>
  66.  <block type="text" index="0">
  67.   <text>Inserrez votre texte ici</text>
  68.  </block>
  69.  <block type="picture" index="0">
  70.   <alt></alt>
  71.   <src>2.jpg</src>
  72.   <href></href>
  73.  </block>
  74.  <block type="textpict" index="0" style="1">
  75.   <text>Inserrez votre texte ici</text>
  76.   <alt></alt>
  77.   <src>3.gif</src>
  78.   <href></href>
  79.  </block>
  80. </article>
  81. </xml>


Message édité par MagicBuzz le 16-04-2003 à 21:17:44
Reply

Marsh Posté le 16-04-2003 à 21:23:48    

Y'a quand même un truc qui me fait plaisir, c'est qu'en bas de l'article de Moz, il y a un lien sur la MSDN, indiquant de quelle façon implémenter la chose sous IE.
 
Je garde donc espoir que Moz va réutiliser le même système sans faire trop de divergences (assez logique, puisque IE est le premier à l'avoir fait : ça marche depuis IE 5.0, et que l'implémentation de M$ ne souffre pas de problèmes notoires)


Message édité par MagicBuzz le 16-04-2003 à 21:24:16
Reply

Marsh Posté le 16-04-2003 à 22:38:06    

super super je vous remercie beaucoup pour tout votre aide je vais voir tout ce que vous m'avez donné je pense que cela va prendre du temps de tout lire et n'hésitait pas si vous trouvé quelque chose d'interessant de mon coté si je trouve la doc correct et si j'arrive a la comprendre comme il faut j'essayerais de faire un bon tutorial au cas ou quelq'un serait interessé. :)  
une petite derniére pour les news il n'y a pas d'autre site que ceux habituels??

Reply

Marsh Posté le 16-04-2003 à 23:02:14    

Ouais enfin MS faisant partie du W3C ils auraient pu s'arranger pour faire un système ouvert et pas trop axé sur leur parseur à eu comme ça a l'air d'être le cas :sarcastic:


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 23:02:14   

Reply

Marsh Posté le 17-04-2003 à 00:03:45    

Bah c'est pas spécialement axé sur leur parseur.
 
Notamment, y'a pas de création d'objet activeX, c'est un objet qui éxiste directement dans la liste des objets de la page, au même titre que "forms" par exemple.
 
Y'a juste qu'au lieu de réinventer la roue, ils ont conservé la syntaxe et l'arborescence de leur objet, ce qui est assez logique, et pour eux, le plus rapide et le plus économique, sans parler au niveau des développeurs qui n'ont pas besoin de réapprendre la roue quand ils changent de langage.
 
Deplus, il faut savoir que IE 5.0 est déjà très vieux, et qu'à cette époque, M$ était un des seuls éditeurs (dans le sens 'founisseur de logiciels';) à proposer un package permettant de manipuler de façon automatisée des fichiers XML. Notamment à cette époque, le XML n'était pas supporté par PHP, et encore moins par la plupart des navigateurs du marché (Netscape, Opera, Mozilla - d'ailleurs je sais pas s'il existait à ce moment, du moins, pas sous la forme qu'on connait aujourd'hui)

Reply

Marsh Posté le 17-04-2003 à 21:33:57    

Sinon, juste comme ça, pour voir ce qu'on peut faire avec :
 
http://test.manga-torii.com/articl [...] le_new.xml
 
http://test.manga-torii.com/articl [...] le_new.xml
 
Le premier pour l'édition, le second pour la lecture. Le fichier ASP "test.asp" ne sert qu'à appliquer le XSL de modification ou de lecture au fichier "file" selon la valeur de "test".

Reply

Marsh Posté le 17-04-2003 à 21:40:41    

tiens http://test.manga-torii.com/article/article_new.xml ca s'affiche bien dans Phoenix/Mozilla, il me semble que récemment qqun avait dit que ça marche pas :??: (mettre un lien vers un xsl dans un xml pour le formater)


Message édité par antp le 17-04-2003 à 21:41:01

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 17-04-2003 à 21:53:14    

antp a écrit :

tiens http://test.manga-torii.com/article/article_new.xml ca s'affiche bien dans Phoenix/Mozilla, il me semble que récemment qqun avait dit que ça marche pas :??: (mettre un lien vers un xsl dans un xml pour le formater)


c pas moi en tout cas :o, ça marche très bien depuis NS 6.0

Reply

Marsh Posté le 18-04-2003 à 22:49:15    

ouais il me semble que c moi qui avait dit que ca marchait pas :) pourtant j'avais mis exactement la meme chose que ce que toi tu as mis, mais je pense que je vois d'ou ca vient: en effet je n'ai pas configuré le type MIME comme application/xml pour les XSL (mais ou i pour le XML) au niveau de Apache, et mozilla fonctionne tellement bien qu'il ne veut pas faire la transformation vu que le MIME n'est pas le bon ;)
 
ça c du BROWSER :) mozilla j'adore, c tout ski support le plus les standards!!!
 
(ps: pour faire du DOM sous mozilla c fastoche :) ca marche nickel, les expressions xpath, la selection de nodes, le clonage et tout le bordel, bien plus de possibilités que sous IE ;))

Reply

Marsh Posté le 18-04-2003 à 22:54:25    

k666 a écrit :

il ne veut pas faire la transformation vu que le MIME n'est pas le bon ;)


 
j'avais eu le même genre de blague avec ma page CSS générée par PHP (.php donc au lieu de .css) : Mozilla n'en voulait pas si je mettais pas un content-type text/css :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 18-04-2003 à 23:04:25    

On a eu le même problème avec IIS et IE récemment.
 
Un fichier RPT (Crystal Report) envoyé par un redirect depuis une page ASP...
-> IE voulait le télécharger au lieu de l'afficher, alors que pourtant les RPT sont lisibles en statndard par Windows depuis au moins Windows 95


Message édité par MagicBuzz le 18-04-2003 à 23:05:07
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed