Lecture xml

gunslinger -  
 gunslinger -
Bonjour,

Je suis entrain d'ajouter a un site d'achat en ligne un nouveau mode de payement qui s'appelle neteller. Mon problème et oui sinon je ne serais pas la est que une fois les informations sont entre et envoyer via un formulaire (cette partie fonctionne sans problème) je reçois un xml.

Le probleme c que ce xml s'affiche sur la page courante immédiatement et je n'arrive pas à l'empêcher de s'afficher de plus je ne trouve pas le moyen d'entrer dans le xml.
L'url de reponse est la même que celle que j'envoie il ne rajoute pas a la fin de fichier.xml que je pourrait aller lire.

L'un de vous aurrait-il une idée a me soumettre pour que j'arive a empecher l'affichage de ce xml et aussi de rentrer dans ce xml que je puisse traiter les données.

Merci infiniment pour vos futur reponse.

PS : Si vous avez besoin d'une quelconque informations faite le moi savoir.
A voir également:

16 réponses

Utilisateur anonyme
 
Bonjour,

recherche du côté d'un parser xml, c'est un pgm qui permet de lire le fichier et d'en faire ensuite ce que l'on souhaite.
0
gunslinger
 
Mon problème n'est pas la lecture mais d'entrer dans le xml car je sais quand il s'agit d'un fichier et que l'on possède le nom mais la je possède rien tout ce qui ce passe c que je valide le formulaire et puis le xml apparait avec la même url que a laquelle jai envoyer mes variables du formulaire l'url est ” https://api.neteller.com/netdirect".

A tu une idée peut être que je ne comprend pas un trucs et que c tout simple.
Merci de ta reponse
0
Utilisateur anonyme
 
une requête retourne un fichier xml. si on clique ou qu'on l'ouvre il s'ouvre effectivement comme on le voit dans ton lien.

ce que je comprends de ton problème c'est que tu veux traiter le contenu de ce fichier. Il te faut donc un parser xml.
0
gunslinger
 
ok je n'avais pas compris sa comme sa je te remercie et je vais essayer de suite.
0
Utilisateur anonyme > gunslinger
 
si tu ne trouves pas je verrai demain au boulot.
0
gunslinger > Utilisateur anonyme
 
Salut alors j'ai encore quelque probleme je comprend pourquoi j'ai besoin d'un parser mais je ne comprend toujours pas comment entrer dans mon xml car dans les exemple que j'ai vu il me faut le nom du fichier dans lequel ce trouve le xml pour pouvoir l'utiliser alors j'ai peut être zapper une étape ou on en a pas besoin mais je n'ai pas vu comment faire.

Je voudrai savoir si il est possible d'empêcher l'affichage de la page xml sur l'écran.

Merci beaucoup pour ton aide.
0
Utilisateur anonyme
 
Bonjour,
à mon avis il doit s'ouvrir car il doit y avoir un href quelque part.

comment récupères-tu ce fichier ? via une requête ?
0
gunslinger
 
C pour un système de payement qui s'appelle neteller j'ai un formulaire en post que j'envoie a cette adresse : https://api.neteller.com/netdirect et donc dans l'url on peut lire cette adresse puis une fois le formulaire valider je reçois directement le xml sur l'écran et dans l'url il y a tjs la m adresse c'est a dire https://api.neteller.com/netdirect

Si il y a de schoses que tu ne comprend pas je peut t'envoyer les doc de cette application.

Merci pour ton aide.
0
Utilisateur anonyme
 
essaies un truc du genre $result = https://api.neteller.com/netdirect ( ce que tu codes pour recevoir le fichier xml)
il sera alors dans un tableau que tu pourras traiter
0
gunslinger
 
tu veux que j'essaie de faire un truc du genre $result = <form method="post" action="https://api.neteller.com/netdirect">......</form>

ou est ce que j'ai mal compris un truc ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
 
non sans forl direct ce que j'ai écrit
0
gunslinger
 
En faisant comme sa

$result = "https://api.neteller.com/netdirect";
$xml_parseur = xml_parser_create();

while ($fdata = fread($result, 2048)){
xml_parse($xml_parseur, $fdata, feof($result)) or die(
sprintf("Erreur XML : %s à la ligne %d\n",
xml_error_string(xml_get_error_code($xml_parseur)),
xml_get_current_line_number($xml_parseur))
);
}

sa ne marche pas il me dis que l'argument passer a fread n'est pas valide.
0
Utilisateur anonyme
 
après ça :
Par gunslinger, le mardi 11 mars 2008 à 12:40:35

En faisant comme sa

$result = "https://api.neteller.com/netdirect";
pour voir ce que cela donne et avant de te lancer dans le parser (pour voir si c'est OK) tu fais

echo "<pre>"; print_r($result);echo "</pre>";

comme ça on verra si tu récupère bien les infos que l'on veut

NON c'est pas bon il faut faire autre chose pour récupérer le xml. je vais chercher
0
gunslinger
 
ok alors je vient de tester comme sa et sa m'affiche https://api.neteller.com/netdirect

mon fichier est composer de la manière suivante :

<?php
$result = "https://api.neteller.com/netdirect";
echo "<pre>"; print_r($result);echo "</pre>";
?>
formulaire d'envoie

ok et qd je valide le formulaire je reçois le xml a l'écran et si je fais clique droit code source je vois uniquement le xml.

du coup le code qui ce trouve sur ma page n'est pas pris en compte. Je ne comprend pas comment mon code qui ce trouve sur ma page du formulaire peut être traiter.
0
Utilisateur anonyme
 
$snoopy = new Snoopy();

$snoopy->submit("https://api.neteller.com/netdirect");
$xml = $snoopy->results;

je te mets la classe php là ---> https://www.cjoint.com/?dlm0VgFziw

0
gunslinger
 
je fais comment pour déclarer la class snoopy ?? je dois faire du copier collé de ce que tu ma donnée puis l'appellé dans mon fichier ??
0
gunslinger
 
ok alors j'ai réussi a utilisé la class snoopy le probleme maintenant c que quand je valide mon formulaire ma page disparais au profit de leur xml qui est affiché a l'écran voir le code source de la page récupérer :

<?xml version="1.0" encoding="UTF-8"?>
<netdirect version="4.1">
<approval>no</approval>
<error>1010</error>
<error_message>You have requested an amount higher than the balance available in your NETELLER account.</error_message>
<custom_1 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<custom_2 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
<custom_3 xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

<url>http://api.neteller.com/...
<url_message>Please sign in to your NETELLER account to confirm your current balance.</url_message>
<telephone_message>Should you have any questions, call the NETELLER Customer Contact Centre at 00800 7767 6343.</telephone_message>
</netdirect>

la page de mon formulaire ou j'utilise la class snoopy disparais donc sa ne marche pas serais tu m'expliquer comment je peux faire pour empecher cette page de saficher que je garde ma page pour que je puisse traiter ce fameux xml

merci infiniment de ton aide j'ai enfin pu avancer.
0
Utilisateur anonyme
 
je t'envoie ce soir quand je serai rentré à la maison un fichier php modèle.
il faut avant que j'enlève quelques lignes pour que tu n'aies qu'un squelette correct.
0
Utilisateur anonyme
 
Voilà un code qui fonctionne au boulot. Modifé pour ne pas avoir tout

<?php
/***********************************************************************/
function startElement($parser, $name, $attribs) {
global $entreprise,$etab,$etab_adr,$siege,$siege_adr,$old;
}
//fin start element

function endElement($parser, $name)
{
global $elt,$resultat,$nb_total_base;
if($name == 'Nombalisededébut'){
$nb_total_base = $elt;
if ($nb_total_base == 0) {
echo '<br> Il n y a aucun retour. <br>';
}
}
// Ici je met dans un tableau le contenur du retour en fonction de la balsie wml
if($name == 'NOMdelabalise'){
$resultat['NOMdelabalise'] = $elt;
}

}

function characterData($parser, $data)
{
global $elt;
$elt = $data;
}

/***********************************************************************/
include ('snoopy.class.php');
/***********************************************************************/
$snoopy = new Snoopy();

$snoopy->submit("https://api.neteller.com/netdirect");

$xml = $snoopy->results;

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
if (!xml_parse($xml_parser, $xml, true))
{

echo "XML error: ".xml_error_string(xml_get_error_code($xml_parser))." ligne ".xml_get_current_line_number($xml_parser));
}
xml_parser_free($xml_parser);

// on a nos variables dans le tableau $resultat

?>
0
gunslinger
 
Merci infiniment j'essaierai chez moi ce soir. Juste pour savoir (je vais tout depioté ce soir) avec ce fichier l'xml ne s affichera plus a l'écran ??? et me permettra de traiter le contenu ?

Merci bcp je vai enfin pouvoir finir ce tp je te remercie énormement :) .
0
Utilisateur anonyme
 
normalement oui
en résumé le parser lit le contenu du fichier xml et met les valeur dans un tableau en fonction des balises du fichier xml
ensuite à toi de traiter le contenu du tableau pour en faire ce que tu veux : affichage, calcul, que sais-je ?
0
gunslinger
 
Ok ben que dire a par merci je ne sais pas trop alors merci pour ta précieuse aide.
0
gunslinger
 
Salut alors je vien d'essayer d'associer ton fichier avec mon formulaire et sa ne marche pas.
Quand j'arrive sur la page de mon formulaire il traite bien ton code en me disant que " XML error: no element found ligne 1 " et quand je valide le formulaire comme d'habitude il m'affiche le xml a l'écran et rien ne ce passe .

Je suis complètement perdu est-ce que je l'ai mis au mauvais endroit ? ou alors est-ce que sa ne marche pas ?
0
Utilisateur anonyme
 
le code doit être adapté (pour tester les balises recherchées)
cependant quand tu cliques sur le lien (du moins pour moi) il me renvoit un fichier xml disant que kj'ai un problème d'autorisation. de ce fait je ne peux pas faire plus.

ce que j'ai envoyé fonctionne avec les tests sur les balises que j'attends à recevoir de mon application...

0
gunslinger
 
J'ai adapté le code pour chercher les balise qui m'intéresse mais c pas sa mon problème, mon vrai problème c qu'il m'affiche tjs la page xml dans la fenêtre.

Mon fichier ce déroule de la maniére suivante

1 - ton code modifié

2 - mon formulaire

Ce qui ce passe c quand j'arrive sur la page pour valider mon achat ton code me met le message XML error: no element found ligne 1.

Je valide mon formulaire et la je reçois comme avant le xml en pleine page.
0
Utilisateur anonyme
 
Quel formulaire ?
je ne comeprends plus rien.

1 tu envoies une requête via le https:// ... qui te retourne un fichier xml.
2 tu traites le retour

aucun formulaire ne doit faire action="https:// ....

0
gunslinger
 
D'accord alors il y a eu un mauvais échange de donner car moi je dois envoyer des données traiter par formulaire et c le retour de ce formulaire qui est un xml qui s'affiche dans la page principal. Si tu veux donne moi une adresse et je tenvoie la doc technique de ce que je suis entrein de faire tu comprendra pour le formulaire.
0
Utilisateur anonyme
 
Comment passes-tu les données vers cette URL, sans doute via un GET alors tu fais :

$snoopy->submit("https://api.neteller.com/netdirect/quelquechose.php?parm1=nn,parm2=mm");

de toute façon avec

$xml = $snoopy->results;

le retour ne s'affiche pas, il est dans la variable xml
c'est le principe même.
peut être devrais-tu trouver sur le net un parser plus simple.
0
gunslinger
 
Je lui envoie par une méthode post c ce qui est demander par la doc technique je te join le formulaire que je leur envoie (les code ne sont pas les bon)

<form action="https://api.neteller.com/netdirect" method="post" enctype="multipart/form-data">
<input type="text" name="version" size="8" maxlength="5" value="4.1"></div></TD>
<input type="text" name="amount" size="8" maxlength="5" value="montant"></div></TD>
<input type="text" name="currency" size="3" maxlength="5" value="EUR"></div></TD>
<input type="hidden" name="merchant_id" value="1111">
<input type="hidden" name="merch_pass" value="EEEEEEEEE">
<input type="hidden" name="merch_key" value="222222">
<input type="hidden" name="merch_transid" value="WWWWWWWW">
<input type="text" name="net_account" size="12" maxlength="12"></div></TD>
<input type="text" name="secure_id" size="6" maxlength="6"></div></TD>
<input type="submit" name="button" value="Envoie mon numéro Neteller">
</form>
0
Utilisateur anonyme
 
s'ils te disent comment envoyer les infos, ils doivent aussi te dire comment les récupérer.
0
gunslinger
 
et ben non il mette juste que tu récupere sa dans l'xml qui s'affiche a l'écran rien de plus.
0
Utilisateur anonyme
 
c'est ce qui est fait par l'utilitaire snoopy
il crée un objet snoopy, envoie la requête et la récupère sous forme de tableau
les paramètres sont passés en GET comme dans le message 28.
et chaque ligne xml est retournée dans le tableau appelé $xml.

quand tu dis qui s'affiche à l'écran : c'est eux qui le disent ? ou toi qui le voit.

cherche sur le net un utilitaire qui récupère du xml et le traite. je ne connais que celui là mais il en existe d'autres sans aucun doute.
0
Utilisateur anonyme
 
Bonjour,
la nuit porte conseil alors voilà un bilan.

Ton formulaire dans son action "attaque" directement l'URL, il est donc normal que le retour soit l'affichage de ce qui est retourné.

Il faut donc trouver un utilitaire du genre de celui que je t'ai passé (snoopy) de manière à ce que le retour de ton formulaire soit fait dans un tableau et non en affichage.

Tant que cela ne pourra être ainsi fait tu auras l'affichege du retour.
Il est étrange que rien ne soit noté dans ta doc.

reagrde ceci https://www.commentcamarche.net/contents/805-php-parser-du-xml
ou recherche dons dans ton moteur de recherche préféré un truc du genre "retour xml" ou "traitement xml".
0
gunslinger
 
Ok je te remercie je vais avancer sur snoopy et apprendre a l'utiliser. Je te redirai qd j'aurai enfin réussi a le faire.

Ton aide m'aura vraiment été précieuse j'apprécie vraiment le temps que tu as pris pour me repondre.
0
Utilisateur anonyme > gunslinger
 
Bon courage
0
gunslinger > Utilisateur anonyme
 
Salut j'ai enfin résolu mon probleme je suis passé par la librairie curl pour récupérer mon xml puis avec domxml j'ai réussi a l'utiliser.
merci pour ton aide.
0