>  기사  >  백엔드 개발  >  simpleXML object里面不能读出数据怎么处理

simpleXML object里面不能读出数据怎么处理

WBOY
WBOY원래의
2016-06-13 11:49:18954검색

simpleXML object里面不能读出数据怎么办?

本帖最后由 joebnb 于 2014-02-26 11:01:22 编辑
class just{<br />	function xmlInclude($data){<br />		$xml = simplexml_load_file(dirname(__FILE__).'/jump.xml');<br />		foreach($xml->Keyword->xpath("//*[data='$data']") as $item){<br />		  return $item;<br />		}<br />	}<br />}<br />$TR = new just;<br />$cr = $TR->xmlInclude(查询);<br />print_r($cr);<br />$cr=(array)$cr;<br />echo '<br>';<br />print_r($cr);<br />

写了一个simplexml解析,print_r发现它出来的是simpleXML object不是数组
SimpleXMLElement Object ( [data] => 查询 [page] => Array ( [0] => dbcon.php [1] => select.php [2] => footer.php ) ) <br />Array ( [data] => 查询 [page] => Array ( [0] => dbcon.php [1] => select.php [2] => footer.php ) )

里面的数值怎么提取,百度上的答案都是转换为数组,我也试着这么做了
可是出来后
echo $cr[0].$cr[0][0].$cr[1][0]

都不能获取到数值并提示:
Notice: Undefined offset: 0 in D:\Program files\WEB Edit\phpLight2013\WWW\Core\xml.php on line 23
Notice: Undefined offset: 0 in D:\Program files\WEB Edit\phpLight2013\WWW\Core\xml.php on line 23

请问怎么样才能从simplexml obj里直接取值?像这种数组中还有数组的情况如何取值?
------解决方案--------------------
$cr = $TR->xmlInclude(查询);
$cr=(array)$cr;
echo $cr['data'];
echo $cr['page'][1];

注意:$cr=(array)$cr; 只是将第一层对象转换成了数组
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.