我试图用php解析XML String。
XML的例子是
<?xml version="1.0"?>
<root>
<Log>
<Item>
<name>![CDATA[James]]</name>
<address>![CDATA[Korea]]</address>
<email>![CDATA[Korea@gmail.com]]</email>
</Item>
<Item>
<name>![CDATA[James2]]</name>
<address>![CDATA[Korea2]]</address>
<email>![CDATA[Korea@gmail.com2]]</email>
</Item>
</Log>
</root>
My Parsing PHP Code
$xml = simplexml_load_string($input,null,LIBXML_NOCDATA);
$xml=json_decode( json_encode( $xml),true);
但是,当我尝试获取sizeof($ xml [&#39; Log&#39;] [&#39; Item&#39;])时,遇到一些问题。
如果XML有一个&#39;项目&#39; ,然后sizeof($ xml [&#39; Log&#39;] [&#39; Item&#39;])返回&#39; 3&#39;
但如果XML有4&#39;项目,则返回&#39; 4&#39;。
如果XML有一个&#39;项目&#39;
,我想返回1我该如何解决这个问题呢?
答案 0 :(得分:1)
我用foreach()解决了这个解析问题。
$xml = simplexml_load_string($input,null,LIBXML_NOCDATA);
$itemArray=$xml->Log->Item;
$i=0;
$sqlParamArray= array();
foreach ($itemArray as $tag) {
$name= trim($tag->name);
$address= trim($tag->address);
$email= trim($tag->email);
array_push($sqlParamArray,$name,$address,$email);
$i++;
}
echo $i;
...
sizeof(&#39;项目&#39;)保存在$ i。
中我解决了。