Heim >Backend-Entwicklung >PHP-Tutorial >simpleXML object里面不能读出数据怎么处理

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

WBOY
WBOYOriginal
2016-06-13 11:49:18978Durchsuche

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; 只是将第一层对象转换成了数组
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn