how can i display only 1 value of an xml output received from an API?



I am learning how to work with an API. :D


Here is my code :



<?php

$url = "http://ift.tt/1uvCzvZ"; # URL to WHMCS API file
$username = "API_User"; # Admin username goes here
$password = "XXXXXXXXXXXXXXX"; # Admin password goes here
$postfields["username"] = $username;
$postfields["password"] = md5($password);
$postfields["action"] = "validatelogin";
$postfields["email"] = "my@email.com";
$postfields["password2"] = "XXXXXXXXXXXX";
$postfields["action"] = "getclientsproducts";
$postfields["clientid"] = "9999";

$query_string = "";
foreach ($postfields AS $k=>$v) $query_string .= "$k=".urlencode($v)."&";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $query_string);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
$jsondata = curl_exec($ch);
if (curl_error($ch)) die("Connection Error: ".curl_errno($ch).' - '.curl_error($ch));
curl_close($ch);

$arr = json_decode($jsondata); # Decode JSON String

$jsondata->$output;

header('Content-type: text/plain');
print_r($jsondata); # Output XML Response as Array


it does return something like this :



<?xml version="1.0" encoding="utf-8"?>
<whmcsapi version="5.3.9">
<action>getclientsproducts</action>
<result>success</result>
<clientid>999</clientid>
<serviceid></serviceid>
<pid></pid>
<domain></domain>
<totalresults>1</totalresults>
<startnumber>0</startnumber>
<numreturned>1</numreturned>
<products>
<product>
<id>771</id>
<clientid>999</clientid>
<orderid>1342</orderid>
<pid>157</pid>
<regdate>2014-08-18</regdate>
<name>name</name>
<groupname>groupname</groupname>
<domain>hostname.com</domain>
<dedicatedip></dedicatedip>
</product>
</products>
</whmcsapi>
<id>999</id>
<clientid>888</clientid>
<orderid>1452</orderid>
<pid>193</pid>
<regdate>2014-08-18</regdate>
<name>NAME</name>
[...]


****Now my question is :


I would like to display only the value of what's between <domain> and </domain>


How can i do this?


Thank you


No comments:

Post a Comment