php中simplexml_load_file函数用法实例


Posted in PHP onNovember 12, 2014

本文实例讲述了php中simplexml_load_file函数用法。分享给大家供大家参考。具体用法分析如下:

在php中simplexml_load_file() 函数把 XML 文档载入对象中之后我们就可以利用由此函数返回的对象进行相关的操作了,下面我们看几个测试实例.

例子,XML文件代码如下:

<?xml version="1.0" encoding="ISO-8859-1"?>  

<note>

<to>George</to>

<from>John</from>

<heading>Reminder</heading>

<body>Don't forget the meeting!</body>

</note>

PHP 代码如下:
<?php  

if (file_exists('test.xml'))  

{  

  $xml = simplexml_load_file('test.xml');  

  var_dump($xml);  

}  

else  

{  

  exit('Error.');  

}  

?>

 
运行输出结果如下: 
object(SimpleXMLElement)#1 (4) {

  ["to"]=>

  string(6) "George"

  ["from"]=>

  string(4) "John"

  ["heading"]=>

  string(8) "Reminder"

  ["body"]=>

  string(25) "Don't forget the meeting!"

}

假如有一个“iciba.xml”文件,其内容如下:
<?xml version="1.0" encoding="UTF-8"?>  

<dict num="219" id="219" name="219">  

 <key>天空</key>  

 <pos></pos>  

 <acceptation>Array;Array;</acceptation>  

 <sent>  

  <orig>The church tower stood against the sky like a finger pointing towards heaven.</orig>  

  <trans>教堂的尖塔在天空的映衬下宛如指向天空的手指。</trans>  

 </sent>  

 <sent>  

  <orig>A balloon floated across the sky.</orig>  

  <trans>气球飘过天空。</trans>  

 </sent>  

 <sent>  

  <orig>A bolt of lightning lit up the sky.</orig>  

  <trans>(一道)闪电照亮了天空。</trans>  

 </sent>  

 <sent>  

  <orig>A bright moving object appeared in the sky at sunset.</orig>  

  <trans>日落西山时,天空出现了一个移动的发亮物体。</trans>  

 </sent>  

 <sent>  

  <orig>A bright rainbow arched above.</orig>  

  <trans>一弯明亮的彩虹悬挂在天空。</trans>  

 </sent>  

</dict>

在PHP语言中我们可以用以下方法取得我们想要的值: 
<?php  

$xmldata = simplexml_load_file("iciba.xml");  

  

header("Content-Type: text/html; charset=UTF-8");  

print_r($xmldata); //第一部分  

  

$listcount = count($xmldata->sent);  

  

for($i=0;$i<$listcount;$i++){ //第二部分  

 $dictlist = $xmldata->sent[$i];  

 echo "<br />例句:".$dictlist->orig;  

 echo "<br />翻译:".$dictlist->trans;  

}  

?>

“第一部分”将输出: 

SimpleXMLElement Object

(

    [@attributes] => Array

        (

            [num] => 219

            [id] => 219

            [name] => 219

        )
    [key] => 天空

    [pos] => SimpleXMLElement Object

        (

        )
    [acceptation] => Array;Array;

    [sent] => Array

        (

            [0] => SimpleXMLElement Object

                (

                    [orig] => The church tower stood against the sky like a finger pointing towards heaven.

                    [trans] => 教堂的尖塔在天空的映衬下宛如指向天空的手指。

                )
            [1] => SimpleXMLElement Object

                (

                    [orig] => A balloon floated across the sky.

                    [trans] => 气球飘过天空。

                )
            [2] => SimpleXMLElement Object

                (

                    [orig] => A bolt of lightning lit up the sky.

                    [trans] => (一道)闪电照亮了天空。

                )
            [3] => SimpleXMLElement Object

                (

                    [orig] => A bright moving object appeared in the sky at sunset.

                    [trans] => 日落西山时,天空出现了一个移动的发亮物体。

                )
            [4] => SimpleXMLElement Object

                (

                    [orig] => A bright rainbow arched above.

                    [trans] => 一弯明亮的彩虹悬挂在天空。

                )
        )
)

“第二部分”将输出: 

例句:The church tower stood against the sky like a finger pointing towards heaven.

翻译:教堂的尖塔在天空的映衬下宛如指向天空的手指。

例句:A balloon floated across the sky.

翻译:气球飘过天空。

例句:A bolt of lightning lit up the sky.

翻译:(一道)闪电照亮了天空。

例句:A bright moving object appeared in the sky at sunset.

翻译:日落西山时,天空出现了一个移动的发亮物体。

例句:A bright rainbow arched above.

翻译:一弯明亮的彩虹悬挂在天空。

例子,更深入的一个遍历输出生成表格,代码如下:

eader("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>";  

}

  

echo "<br>循环读取:<br>";  

foreach($xml->town as $towns){ //有多个user,取得的是数组,循环输出  

    echo "-------------------<br>";  

    echo "id:".$towns['id']."<br>";  

    echo "归属:".$towns['parent']."<br>";  

    echo "地区:".$towns."<br>";  

}

希望本文所述对大家的PHP程序设计有所帮助。

PHP 相关文章推荐
PHP实现用户认证及管理完全源码
Mar 11 PHP
理解php原理的opcodes(操作码)
Oct 26 PHP
php下通过IP获取地理位置的代码(小偷程序)
Jun 09 PHP
Linux fgetcsv取得的数组元素为空字符串的解决方法
Nov 25 PHP
基于php 随机数的深入理解
Jun 05 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
PHP集成百度Ueditor 1.4.3
Nov 23 PHP
PHP+Ajax+JS实现多图上传
May 07 PHP
php微信开发之百度天气预报
Nov 18 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
如何打开php的gd2库
Feb 09 PHP
PHP里面把16进制的图片数据显示在html的img标签上(实现方法)
May 02 PHP
php实现的ping端口函数实例
Nov 12 #PHP
PHP实现下载断点续传的方法
Nov 12 #PHP
php格式化日期实例分析
Nov 12 #PHP
PHP中的Streams详细介绍
Nov 12 #PHP
PHP产生不重复随机数的5个方法总结
Nov 12 #PHP
php一行代码获取文件后缀名实例分析
Nov 12 #PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 #PHP
You might like
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
Linux安装配置php环境的方法
2016/01/14 PHP
php英文单词统计器
2016/06/23 PHP
浅谈php中的访问修饰符private、protected、public的作用范围
2016/11/20 PHP
js定时器怎么写?就是在特定时间执行某段程序
2013/10/11 Javascript
jQuery固定浮动侧边栏实现思路及代码
2014/09/28 Javascript
node.js中的fs.fchownSync方法使用说明
2014/12/16 Javascript
javascript用正则表达式过滤空格的实现代码
2016/06/14 Javascript
jquery事件绑定解绑机制源码解析
2016/09/19 Javascript
JS实用的带停顿的逐行文本循环滚动效果实例
2016/11/23 Javascript
js代码实现下拉菜单【推荐】
2016/12/15 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
关于Webpack dev server热加载失败的解决方法
2018/02/22 Javascript
JS抛物线动画实例制作
2018/02/24 Javascript
webpack4.x打包过程详解
2018/07/18 Javascript
vue中Axios的封装与API接口的管理详解
2018/08/09 Javascript
JavaScript中callee和caller的区别与用法实例分析
2019/06/28 Javascript
es6 super关键字的理解与应用实例分析
2020/02/15 Javascript
Vue利用localStorage本地缓存使页面刷新验证码不清零功能的实现
2020/09/04 Javascript
Python 调用DLL操作抄表机
2009/01/12 Python
Python中转换角度为弧度的radians()方法
2015/05/18 Python
pandas数据清洗,排序,索引设置,数据选取方法
2018/05/18 Python
python Tkinter版学生管理系统
2019/02/20 Python
一文了解Python并发编程的工程实现方法
2019/05/31 Python
Django在pycharm下修改默认启动端口的方法
2019/07/26 Python
django之自定义软删除Model的方法
2019/08/14 Python
pytorch中的上采样以及各种反操作,求逆操作详解
2020/01/03 Python
Python super()方法原理详解
2020/03/31 Python
Python word文本自动化操作实现方法解析
2020/11/05 Python
新锐科技Java程序员面试题
2016/07/25 面试题
毕业生教师求职信
2013/10/20 职场文书
总经理办公室主任岗位职责
2013/11/12 职场文书
数控技术应用个人求职信范文
2014/02/03 职场文书
Vue和Flask通信的实现
2021/05/19 Vue.js
使用 Apache Superset 可视化 ClickHouse 数据的两种方法
2021/07/07 Servers
MyBatis自定义SQL拦截器示例详解
2021/10/24 Java/Android