Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Transmission flux XML entre PHP et AJAX

Nasspower, le vendredi 2 novembre 2007 à 09:05:02
Bonjour,
Je suis un nouvel utilisateur d'AJAX et j'ai le souci suivant :
Je voudrai recuperer les donnees d un fichier XML type ceci :


<?xml version="1.0"?>
<answer size="100">super
<doc id="train/location001.view0001.jpg" w="0.409906" idcollect="STOIC" fmt="JPEG" href="http://ipal-server/stoic/train/location001.view0001.jpg"></doc>
</answer>

Je sais qu on peut lire directement dans le fichier et traiter les donnees avec javascrpit, mais en fait le nom du fichier est cree par du php et je n ai aucun moyen de le recuperer, donc je ne peux pas directement acceder au fichier en JS.
Mon idee est alors de lire le fichier xml avec PHP et d'envoyer tout ca au JS avec AJAX et responseText.

Probleme : Ca marche pas. Je ne peux traiter la chaine recue comme un objet xml, js ne veut pas. d'ailleurs je n arrive meme pas a l afficher!!! Je pense que js comprend que c est du xml et que c'est pour ca.

Qqn a t il une idee???

Merci d avance!
Configuration: Linux
Firefox 2.0.0.6
Répondre à Nasspower  Signaler ce message aux modérateurs Aller au dernier message

1


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
burnedsyn, le vendredi 2 novembre 2007 à 16:38:20
utilise responsexml...
function ajax_xml() {
request.open('POST',"testajax.php", true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
request.send("&type=xml");
request.onreadystatechange = function(){ if(request.readyState == 4){
var answer = request.responseXML.documentElement;
document.write(answer.getElementsByTagName("text")[0].firstChild.length);
}
}
}

enfin c'est une piste

Tim
Répondre à burnedsyn

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
nasspower, le samedi 3 novembre 2007 à 04:14:21
Bonjour,
Merci de ta reponse mais ca ne marche pas!!! Ou alors je n'y arrive pas!!! J'envoie par echo avec php la chaine suivante par ex :

<?xml version="1.0"?>
<answer size="100">super
<doc id="train/location001.view0001.jpg" w="0.409906" idcollect="STOIC" fmt="JPEG" href="http://ipal-server/stoic/train/location001.view0001.jpg"></d oc>
</answer>

Si je le récupère avec responseText, et que je demande de l'afficher dans une balise div par ex avec inner.html il ne le fait pas car il comprend que c'est du xml.

Si je le récupère avec responseXML et que je lui applique des fonctions dom type getElementByTagName(), rien ne se passe non plus...

J'ai essayé d'envoyer de le charger avec simpleXML_load_file sous php et de l'envoyer apres pour le récupérer avec responseXML rien n'y fait....pas cool!!!
Répondre à nasspower

3


  • 1
    Ce message vous semble utile, votez !
  • Ce message ne vous semble pas utile, votez !
  • Signaler ce message aux modérateurs
 burnedsyn, le samedi 3 novembre 2007 à 09:12:12
<?php
$fichier = "./somedoc.xml";
// fonction de traitement des balises ouvrantes
function fonctionBaliseOuvrante($parseur, $nomBalise, $tableauAttributs)
{
// En fait... nous nous conteterons de mémoriser le nom de la balise
// afin d'en tenir compte dans la fonction "fonctionTexte"

global $derniereBaliseRencontree;
global $attribtab;
$derniereBaliseRencontree = $nomBalise;
$attribtab=$tableauAttributs;
echo("<br>voila la balsie >>");
print_r($derniereBaliseRencontree);
echo("<br>voila le tableau d'attribut c'est plus clair <br>");
print_r($attribtab);

}

// fonction de traitement des balises fermantes
function fonctionBaliseFermante($parseur, $nomBalise)
{
// On oublie la dernière balise rencontrée
global $derniereBaliseRencontree;

/* $derniereBaliseRencontree = "";

global $attribtab;

$attribtab="";*/

}

// fonction de traitement du texte
// qui est appelée par le "parseur"
function fonctionTexte($parseur, $texte)
{
global $derniereBaliseRencontree;
global $attribtab;
//echo ("test $derniereBaliseRencontree <br >");
// ATTENTION: Par défaut les noms des balises sont
// mises en majuscules
switch ($derniereBaliseRencontree) {
case "ANSWER":
echo("<br>ici on y est dans answer<br>");
echo "voici le texte de answer <b>".$texte."</b>;
break;
case "DOC":
echo("ici on y est dns doc");
echo $texte;
echo("alors ? rien au dessus tout en dessous... ben c un tableau d'attribut");
print_r($attribtab);
break;

}
}


// Création du parseur XML
$parseurXML = xml_parser_create();

xml_set_element_handler($parseurXML, "fonctionBaliseOuvrante"
, "fonctionBaliseFermante");

xml_set_character_data_handler($parseurXML, "fonctionTexte");

// Ouverture du fichier
$fp = fopen($fichier, "r");
if (!$fp) die("Impossible d'ouvrir le fichier XML");

// Lecture ligne par ligne
while ( $ligneXML = fgets($fp, 1024)) {
// Analyse de la ligne
// REM: feof($fp) retourne TRUE s'il s'agit de la dernière
// ligne du fichier.
//echo ("$ligneXML");
xml_parse($parseurXML, $ligneXML, feof($fp)) or
die("Erreur XML");





}

xml_parser_free($parseurXML);
fclose($fp);


?>

j'espère que cela peux t'aider
aussi si tu as le pouvoir de formater le xml tu peux aussi faire...
des balise pour chaque paramètres et mettre la valeur dans la balise ou dans un [!CDATAtavaleur]]
voila j'espère que cela t'aidera

Tim
Répondre à burnedsyn
PHP - Parser du XML Introduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de... www.commentcamarche.net/contents/php/phpxml.php3
Télécharger Notepad2 Notepad2 est un bloc-note sans installation libre possédant des fonctionnalités avancées de coloration syntaxique. Fonctionnalités Coloration syntaxique pour les langages suivants : HTML, XML, PHP, ASP (JScript, VBS), CSS, JavaScript, VBScript,... www.commentcamarche.net/telecharger/telecharger-34055332-notepad2
[Flash JS]Son en Flash piloté par JavaScript (Résolu) Bonjour bonjour, Je suis développeur de formation, et je suis actuellement en train de concevoir un jeu en ligne en PHP - AJAX. La page sur laquelle se déroulera le jeu n'est chargée qu'une seule fois, et les informations sont mises à jour à... www.commentcamarche.net/forum/affich-7916511-flash-js-son-en-flash-pilote-par-javascript
[Webmaster] Créer son flux RSSCréer votre flux RSS permettra aux internautes qui consultent votre site d'être immédiatement informé des mises à jour. C'est important: Il semble qu'une certaine catégorie d'internautes ne visitent même plus les sites qui n'ont pas de flux RSS. Vous... www.commentcamarche.net/faq/sujet-3463-webmaster-creer-son-flux-rss
[PHP] Headers already sent by.....Lorsque vous utilisez une fonction Php qui manipule les en-têtes http comme par exemple: header() setcookie() session_start() Il est important d'utiliser ces fonctions avant d'avoir généré le moindre flux vers le client. A partir du moment où... www.commentcamarche.net/faq/sujet-1916-php-headers-already-sent-by
TCP / UDP : Quelles différences ?Le protocole UDP UDP est un protocole orienté "non connexion". Pour faire simple, lorsqu'une machine A envoie des paquets à destination d'une machine B, ce flux est unidirectionnel. En effet, la transmission des données se fait sans prévenir le... www.commentcamarche.net/faq/sujet-7294-tcp-udp-quelles-differences
Integrer des indexs de recherche pour google (Résolu)Bonjour, Pour que votre application intranet,ou site soit reconnue il faut mettre un certain type d indexation au niveau des moteurs de recherche Les plus visiter Pour ça je vous propose cette démarche: "Grâce au standard des flux XML, le moteur peut... www.commentcamarche.net/forum/affich-4435249-integrer-des-indexs-de-recherche-pour-google
[php/ajax] réponse en temps réel (Résolu)Bonjour, J'aimerais créer un chat en ajax et php et aussi un système pour que des messages privés ( ors du chat ) soient afficher en temps réel. Je ne sait pas par où commencer ma documentation. Une bonne âme pourrait-elle m'aiguiller ? Ha... www.commentcamarche.net/forum/affich-8363655-php-ajax-reponse-en-temps-reel
Pb de transmission de variable ? [PHP] (Résolu)Bonjour, Comme vous pouvez le constater sur cette page (seule l'index est en php ainsi que le pop up (j'ai pas reussi a faire autrement car j'utilise des variables de session et l'index est farci d'includes comme celui-ci: ... www.commentcamarche.net/forum/affich-8045363-pb-de-transmission-de-variable-php
L'AJAX pour tous par GooglePour ceux qui auraient la tête dans le sable depuis plusieurs mois, AJAX est la technologie à la mode. Ce n'est rien de plus qu'une combinaison de technologies existantes depuis plusieurs années (HTML+CSS+Javascript+DOM+XmlHttpRequest), mais elle... www.commentcamarche.net/actualites/l-ajax-pour-tous-par-google-2237409-actualite.php3
AJAX (Asynchronous Javascript And XML)Introduction à AJAX AJAX (Asynchronous Javascript And XML, traduisez Javascript asynchrone et XML) est une méthode de développement web basée sur l'utilisation d'un script Javascript pour effectuer des requêtes web à l'intérieur d'une page web... www.commentcamarche.net/contents/ajax/ajax-intro.php3
Structure d'un document XMLQu'est-ce que le XML? La norme XML en tant que telle doit être vue comme un outil permettant de définir un langage (on dit alors qu'il s'agit d'un métalangage), permettant de créer des documents structurés à l'aide de balises. Une balise est une... www.commentcamarche.net/contents/xml/xmlstruc.php3
Introduction à XMLPrésentation de XML XML (entendez eXtensible Markup Language et traduisez Langage à balises étendu, ou Langage à balises extensible) est en quelque sorte un langage HTML amélioré permettant de définir de nouvelles balises. Il s'agit effectivement... www.commentcamarche.net/contents/xml/xmlintro.php3