php中simplexml_load_file()函数用法详细
本文章详细的介绍了关于simplexml_load_file函数的用法,有需要了解的同学可以看看本函数详细实例.
表面看到的不一定是真的,file_get_contents或者curl远程抓一下,看其是否是一个有效的XML,特殊字符是会引起simplexml_load_file解析XML失败的,函数会报错.
定义和用法 :simplexml_load_file() 函数把 XML 文档载入对象中.
如果失败,则返回 false.
语法: simplexml_load_file(file,class,options,ns,is_prefix)
参数 描述
file 必需。规定要使用的 XML 文档。
class 可选。规定新对象的 class。
options 可选。规定附加的 Libxml 参数。
ns 可选。
is_prefix 可选。
例子 1,代码如下:
<?php // The file test.xml contains an XML document with a root element // and at least an element /[root]/title. if ( file_exists ( 'test.xml' )) { $xml = simplexml_load_file( 'test.xml' ); var_dump( $xml ); } else { exit ( 'Failed to open test.xml.' ); } ?> This script will display, on success: SimpleXMLElement Object ( [title] => Example Title ... )看源代码及IE页面,没有问题,函数就是报错,后来想了个办法,file_get_contents一下,发现丫的在XML数据前面和后面分别有一串数字,于是XML无法顺利解析,这个分析起来还好些,而另一个就堪称头疼了.
XML格式如下:
< Result value = "true" message = "Success!" > < Item ID = "8861" UserName = "30121740" NickName = "ǒˇFEΙでァ" Grade = "16" Repute = "168" Sex = "false" WinCount = "138" TotalCount = "229" ConsortiaName = "圣域" Rename = "false" ConsortiaRename = "false" EscapeCount = "0" IsFirst = "31" FightPower = "3032" /> </ Result >初步分析是由于 里面NickName乱码导致,于是试验另一地址,代码如下:
< Result value = "true" message = "Success!" > < Item ID = "7" UserName = "13792776" NickName = "龙哥" Grade = "1" Repute = "313119" Sex = "true" WinCount = "0" TotalCount = "0" ConsortiaName = "" Rename = "false" ConsortiaRename = "false" EscapeCount = "0" IsFirst = "34" FightPower = "0" /> </ Result >没有问题,很显然是这个NickName乱码造成的,于是开始了漫长且无奈的沟通,不过人家合作方不认为自己的文件格式有问题.
返回类 SimpleXMLElement 的一个对象,该对象的属性包含 XML 文档中的数据,如果失败,则返回 false.
simplexml_load_file解析xml详细实例.
xml文档格式如下:
<? xml version = "1.0" encoding = "utf-8" ?> < list > < company > 武汉xxx公司 </ company > < user > < name > 张三 </ name > < age sex = "未知" > a </ age > < height > 1 </ height > </ user > < user > < name > 李四 </ name > < age sex = "女" > b </ age > < height > 2 </ height > </ user > < user > < name > 王五 </ name > < age sex = "男" > c </ age > < height > 3 </ height > </ user > < town parent = "0" id = "1" > 台北 </ town > < town parent = "1" id = "2" > 板桥 </ town > < town parent = "0" id = "3" > 桃园 </ town > </ list >php解析代码如下:
header( "content-type:text/html; charset=utf-8" ); //设置编码 $xml = simplexml_load_file( 'a.xml' ); //载入xml文件 $lists和xml文件的根节点是一样的 echo $xml ->company. "<br>" ; echo $xml ->town. "<br>id:" ; echo $xml ->town[ 'id' ]. "<br>parent:" ; echo $xml ->town[ 'parent' ]. "<br>" ; echo "<br>循环读取:<br>" ; foreach ( $xml ->user as $users ){ //有多个user,取得的是数组,循环输出 echo "-------------------<br>" ; echo "姓名:" . $users ->name. "<br>" ; echo "编号:" . $users ->age. "<br>" ; echo "性别:" . $users ->age[ 'sex' ]. "<br>" ; echo "序号:" . $users ->height. "<br>" ; } //开源代码phpfensi.com echo "<br>循环读取:<br>" ; foreach ( $xml ->town as $towns ){ //有多个user,取得的是数组,循环输出 echo "-------------------<br>" ; echo "id:" . $towns [ 'id' ]. "<br>" ; echo "归属:" . $towns [ 'parent' ]. "<br>" ; echo "地区:" . $towns . "<br>" ; }定义和用法:
simplexml_load_file() 函数把 xml 文档载入对象中,如果失败,则返回 false.
语法: simplexml_load_file(file,class,options,ns,is_prefix)
参数 描述
file 必需。规定要使用的 xml 文档。
class 可选。规定新对象的 class。
options 可选。规定附加的 libxml 参数。
ns 可选。
is_prefix 可选。
查看更多关于php中simplexml_load_file()函数用法详细 - php函数的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did30828