Reputation: 123
I have something like this:
<client type="s" name="root" desc="" protocol="server" protocolext="" au="0" thid="0x15e9190">
<request="0000" srvid="0000" time="" history="" answered=""></request>
<times login="2013-04-16T10:59:16+0200" online="7001" idle="0"></times>
<connection ip="127.0.0.1" port="0">OK</connection>
</client>
Now, i need to parse this data into a PHP variables, something like this:
$client_type = s; $name = root; $conn_ip = 127.0.0.1;
...and so on,is there a way to do that?
Tried bash, but it would be much easier if it can be done with php
Upvotes: 0
Views: 64
Reputation: 19482
If you need to fetch data from a XML use Xpath:
$dom = new DOMDocument();
$dom->loadXml($xml);
$xpath = new DOMXpath($dom);
$client_type = $xpath->evaluate('string(/client/@type)');
$name = $xpath->evaluate('string(/client/@name)');;
$conn_ip = $xpath->evaluate('string(/client/connection/@ip)');
Demo: https://eval.in/124553
Upvotes: 0
Reputation: 227180
PHP has XML support. I like to use SimpleXML.
$xml = new SimpleXMLElement($xmlString);
$client_type = (string)$xml['type'];
$name = (string)$xml['name'];
$conn_ip = (string)$xml->connection['ip'];
Easy.
DEMO: https://eval.in/124545
Upvotes: 4
Reputation: 765
simplexml_load_file()
or simplexml_load_string()
loads xml as an object.
Upvotes: 0
Reputation: 243
You can try it with a xml Parser: https://www.php.net/xml, Best XML Parser for PHP
Upvotes: 0