PHP解析XML数据

PHP解析XML数据

问题描述:

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

我有这样的事情: p>

 &lt; client type  =“s”name =“root”desc =“”protocol =“server”protocolext =“”au =“0”thid =“0x15e9190”&gt; 
&lt; request =“0000”srvid =“0000”time =  “”history =“”answer =“”&gt;&lt; / request&gt; 
&lt; times login =“2013-04-16T10:59:16 + 0200”online =“7001”idle =“0”&gt;&lt;  ; / times&gt; 
&lt; connection ip =“127.0.0.1”port =“0”&gt; OK&lt; / connection&gt; 
&lt; / client&gt; 
  code>  pre> 
 
  
 
 
  $ client_type = s;  $ name = root;  $ conn_ip = 127.0.0.1; 
  code>  pre> 
 
 

......等等,有没有办法做到这一点? p>

试过bash,但如果可以用php p> div>完成它会容易得多

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

You can try it with a xml Parser: http://de1.php.net/xml, Best XML Parser for PHP

simplexml_load_file() or simplexml_load_string() loads xml as an object.

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