2010-06-24 3 views
0

J'ai un problème.xml problèmes d'analyse php

J'ai 2 scripts php, un qui envoie des données xml en utilisant curl et un qui est censé lire les données publiées.

Le problème est que le script de réception n'obtient aucun des éléments du fichier xml.

Toute aide serait appriciée.

SENDER SCRIPT:

<?php 
$xml = ' 
<SMS xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:noNamespaceSchemaLocation="http://api.xxxxxxxxxxxxxxx.co.uk/send/xxxxxxxxxxxxxxx.xsd"> 
    <auth> 
     <user>yourusername</user> 
     <pass>yourpassword</pass> 
    </auth> 
    <originator>your_sender_name</originator> 
    <messages> 
     <msg id="1" gsm="440000000000"> 
      <text>Please come for you appointment tomorrow morning at 12:45</text> 
     </msg>   
     <msg id="1" gsm="440000000000"> 
      <text>Please come for you appointment tomorrow morning at 14:00</text> 
     </msg> 
    </messages> 
</SMS>'; 

function sendMessages($xml) { 
    $curl = curl_init(); 
    //$url = "https://sapi.xxxxxxxxxxxxxxx.co.uk/send/xml.php"; 
    $url = "http://api.xxxxxxxxxxxxxxx.co.uk/send/xml.php"; 

    $options = array(CURLOPT_URL => $url, CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_POSTFIELDS => $xml); 
    curl_setopt_array($curl, $options); 
    $response = curl_exec($curl); 
    curl_close($curl); 
    return $response; 
} 

echo sendMessages($xml); 
//echo $xml; 
?> 

RECIEVER SCRIPT:

<?php 
function logResult() { 
    $postdata = file_get_contents("php://input"); 
    $dom = new DOMDocument(); 
    $dom->loadXML($postdata); 
    $xp = new domxpath($dom); 
    $messages = $xp->query("//SMS/auth"); 
    //var_dump($messages); 
    foreach ($messages as $node) { 
     //var_dump($node); 
     return $node->getAttribute('user'); 
     //$node->getAttribute('sentdate'); 
     //$node->getAttribute('donedate'); 
    } 
} 
echo logResult(); 
?> 
+0

L'expéditeur xml est ici http://fixee.org/paste/k5i6qca/, stackoverflow est parfois bizarre; ( –

+0

@Stefan Gehrig: votre message ne s'affiche pas, pouvez-vous republier s'il vous plaît.) –

+0

@Kyle: I juste fait le code source et le code XML plus lisible en indentant correctement les lignes ... Pas encore de réponse de mon côté –

Répondre

0

je ne pouvais pas obtenir DOMDocument même pour charger cette chaîne XML, avec ou sans l'espace de noms. Je ne sais pas pourquoi.

Je suggère d'utiliser SimpleXMLElement. Je l'utilise beaucoup, et ça marche très bien. J'ai aussi pu l'obtenir pour analyser votre chaîne XML.