PHP中simplexml_load_string函數(shù)使用說明
更新時間:2011年01月01日 19:54:24 作者:
這個問題遇到好幾次了,今天翻看以前代碼的時候看到,便記下來,需要的朋友可以參考下。
先用一段代碼重現(xiàn)一下問題
乍一看,結(jié)果很讓人費解:
<?php
$string = <<<EOF
<data>
<foo><bar>hello</bar></foo>
<foo><bar>world</bar></foo>
</data>
EOF;
$data = simplexml_load_string($string);
print_r($data);
print_r($data->foo);
?>
乍一看,結(jié)果很讓人費解:
SimpleXMLElement Object
(
[foo] => Array
(
[0] => SimpleXMLElement Object
(
[bar] => hello
)
[1] => SimpleXMLElement Object
(
[bar] => world
)
)
)
SimpleXMLElement Object
(
[bar] => hello
)
明明print_r顯示foo是一個有兩個bar元素的數(shù)組,但是最后卻僅僅顯示了一個bar元素!
原因其實很簡單,在如上所示simplexml_load_string的結(jié)果里,foo并不是數(shù)組,而是一個迭代對象!
可以這樣確認(rèn):
foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($v);
看來,print_r或者var_dump之類的表象并不完全可信,自己多留心吧。
乍一看,結(jié)果很讓人費解:
復(fù)制代碼 代碼如下:
<?php
$string = <<<EOF
<data>
<foo><bar>hello</bar></foo>
<foo><bar>world</bar></foo>
</data>
EOF;
$data = simplexml_load_string($string);
print_r($data);
print_r($data->foo);
?>
乍一看,結(jié)果很讓人費解:
復(fù)制代碼 代碼如下:
SimpleXMLElement Object
(
[foo] => Array
(
[0] => SimpleXMLElement Object
(
[bar] => hello
)
[1] => SimpleXMLElement Object
(
[bar] => world
)
)
)
SimpleXMLElement Object
(
[bar] => hello
)
明明print_r顯示foo是一個有兩個bar元素的數(shù)組,但是最后卻僅僅顯示了一個bar元素!
原因其實很簡單,在如上所示simplexml_load_string的結(jié)果里,foo并不是數(shù)組,而是一個迭代對象!
可以這樣確認(rèn):
復(fù)制代碼 代碼如下:
foreach ($data->foo as $v) print_r($v);
foreach ($data->children() as $v) print_r($v);
看來,print_r或者var_dump之類的表象并不完全可信,自己多留心吧。
您可能感興趣的文章:
- PHP使用DOM和simplexml讀取xml文檔的方法示例
- php使用simplexml_load_file加載XML文件并顯示XML的方法
- php+xml編程之SimpleXML的應(yīng)用實例
- PHP中使用SimpleXML檢查XML文件結(jié)構(gòu)實例
- php中simplexml_load_file函數(shù)用法實例
- php的SimpleXML方法讀寫XML接口文件實例解析
- php simplexmlElement操作xml的命名空間實現(xiàn)代碼
- PHP XML操作的各種方法解析(比較詳細(xì))
- PHP中的生成XML文件的4種方法分享
- PHP基于SimpleXML生成和解析xml的方法示例
相關(guān)文章
解析PHP SPL標(biāo)準(zhǔn)庫的用法(遍歷目錄,查找固定條件的文件)
本篇文章是對PHP中SPL標(biāo)準(zhǔn)庫的用法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06PHP中substr()與explode()函數(shù)用法分析
這篇文章主要介紹了PHP中substr()與explode()函數(shù)用法分析,以實例的形式較為詳細(xì)的講述了substr()與explode()函數(shù)處理字符串的技巧,是字符串操作中使用頻率比較高的函數(shù),具有一定的實用價值,需要的朋友可以參考下2014-11-11php-fpm優(yōu)化總結(jié)經(jīng)驗分享
這篇文章主要為大家介紹了php-fpm優(yōu)化總結(jié)的經(jīng)驗分享,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08