1

In an xml respone below

<response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">1</int> </lst> <lst name="initArgs"> <lst name="defaults"> <str name="config">../conf/dataconfig.xml</str> </lst> </lst> <str name="status">busy</str> <str name="importResponse">A command is still running...</str> <lst name="statusMessages"> <str name="Time Elapsed">0:0:7.942</str> <str name="Total Requests made to DataSource">1</str> <str name="Total Rows Fetched">8831</str> <str name="Total Documents Processed">8830</str> <str name="Total Documents Skipped">0</str> <str name="Full Dump Started">2013-06-03 22:15:11</str> </lst> <str name="WARNING"> This response format is experimental. It is likely to change in the future. </str> </response> 

I need to access two values:

<str name="status">busy</str> -- busy <str name="Total Rows Fetched">8831</str> -- 8831 

Using code below:

$xml = simplexml_load_string($string); echo $xml->str[0]; 

I am able to access value "busy" but I don't know how to access "8831".

0

2 Answers 2

0

use Xpath:

$xml = simplexml_load_string($x); // assuming XML in $x echo $xml->xpath("//str[@name='status']")[0]; 

and do the same with the other value.

Sign up to request clarification or add additional context in comments.

3 Comments

need solution using simplexml_load_string ?
yes, it's simplexml, see my edit.
Awesome solution .... heads off
0

Use var_dump($xml); to understand xml object. Read Example #1 Interpret an XML string example http://php.net/manual/en/simplexmlelement.attributes.php It will be something like,

foreach($xml->foo[0]->attributes() as $a => $b) { if($a=="Total Rows Fetched"){ echo $b; } } 

2 Comments

its giving A command is still running...[
not able to do it :-( please help

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.