php中simplexml_load_file函数用法实例

网络编程 2021-07-05 09:50www.168986.cn编程入门
这篇文章主要介绍了php中simplexml_load_file函数用法,以实例形式详细的讲述了simplexml_load_file函数读取XML文件的具体方法,非常具有实用价值,需要的朋友可以参考下

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

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

例子,XML文件代码如下:

代码如下:
<?xml version="1.0" encoding="ISO-8859-1"?> 
<note>
<to>Gee</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't fet 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) "Gee"
  ["from"]=>
  string(4) "John"
  ["heading"]=>
  string(8) "Reminder"
  ["body"]=>
  string(25) "Don't fet the meeting!"
}

假如有一个“iciba.xml”文件,其内容如下:
代码如下:
<?xml version="1.0" encoding="UTF-8"?> 
<dict num="219" id="219" name="219"> 
 <key>天空</key> 
 <pos></pos> 
 <aeptation>Array;Array;</aeptation> 
 <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
        (
        )

    [aeptation] => 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->pany."<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程序设计有所帮助。

Copyright © 2016-2025 www.168986.cn 狼蚁网络 版权所有 Power by