Home >Backend Development >PHP Tutorial >simpleXML object里面不能读出数据怎么处理

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

WBOY
WBOYOriginal
2016-06-13 11:49:18955browse

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; 只是将第一层对象转换成了数组
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn