Ciao a tutti (e buona domenica)
Sto lavorando su un progetto di connessione ad un sistema informatico attraverso API.
Purtroppo la documentazione fornita non è perfettamente chiara, e ho un problema.
Attraverso una connessione ottengo in risposta un XML attraverso il SImpleXML. Solo che vorrei parsarlo in maniera più leggibile.
Diciamo che questo è il codice (ometto alcune cose inutili) fatto da una funziona più la connessione vera e propria:
In uscita ottengo questo:codice:<?php function submit_cURL ($data) { // initialize curl handle: $ch = curl_init(); // set url to post to: curl_setopt($ch, CURLOPT_URL, 'https://xxxxxxx' ); // return into a variable instead on on-screen: curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Set timeout, in seconds: curl_setopt($ch, CURLOPT_TIMEOUT, 10); // add XML data here: curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // turn off verification of SSL for testing: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, TRUE); // Workaround for certain Virtual Hosting hosts: // curl_setopt ($ch, CURLOPT_PROXY,"http://"); // Send query to server: $result = curl_exec($ch); curl_close ($ch); // Create a SimpleXML object from the result and return it. $parsed_result = new SimpleXMLElement($result); foreach ($result as $title) { print $title->nodeValue. "\n"; } return $parsed_result; } $data['user_id'] = 'xxxxxxxxxx'; $data['user_password'] = '059eee752771ea3xxxxxxxxxxxxx'; $data['type'] = 'users_list'; $data['account_id'] = 'xxxxxxxxxxx'; $result = submit_cURL ($data); print_r($result); ?>
E' possibile parsarlo in un XML più consono che possa essere banalmentecodice:SimpleXMLElement Object ( [@attributes] => Array ( [status] => success ) [users] => SimpleXMLElement Object ( [user] => Array ( [0] => SimpleXMLElement Object ( [user_id] => robertocolonna [user_first_name] => SimpleXMLElement Object ( ) [user_last_name] => SimpleXMLElement Object ( ) [user_password] => 9f1b54aa886ffda4ee2ac8bc1bf200caef178d26 [user_PIN] => SimpleXMLElement Object ( ) [user_addtl_info] => SimpleXMLElement Object ( ) [user_language] => IT [user_timezone] => 14 [user_role] => N [user_allowed_campaigns] => SimpleXMLElement Object ( [@attributes] => Array ( [status] => all ) [0] => ) ) [1] => SimpleXMLElement Object ( [user_id] => cappa [user_first_name] => SimpleXMLElement Object ( ) [user_last_name] => SimpleXMLElement Object ( ) [user_password] => 2df3f6a5999f4a63af6fb218def1c2b041c1af1c [user_PIN] => SimpleXMLElement Object ( ) [user_addtl_info] => SimpleXMLElement Object ( ) [user_language] => IT [user_timezone] => 14 [user_role] => N [user_allowed_campaigns] => SimpleXMLElement Object ( [@attributes] => Array ( [status] => some ) [campaign_id] => 2281028776673701 ) ) ) ) )
Quello sopra riportato è i.e. l'esempio come riportato sul "Manuale" API... ovvio i valori sono diversi ma la struttura - che ho tagliato al primo - dovrebbe essere quella....codice:# <response status="success"> # <users> # <user> # <user_id>1234567890123456</user_id> # <user_first_name>Jane</user_first_name> # <user_last_name>Cashier</user_last_name> # <user_password>p2345khkl235hkufbfdivsdf</user_password> # <user_PIN>1234</user_PIN> # <user_addtl_info></user_addtl_info> # <user_language>EN<user_language> # <user_timezone>15</user_timezone> # <user_role>K</user_role> # <user_allowed_campaigns status="some"> # <campaign_id>1234567890123456</campaign_id> # <campaign_id>2345678901234567</campaign_id> # ... # </user_allowed_campaigns> # </user>
grazie in anticipo!

Rispondi quotando