php中simplexml_load_file函数使用

php中simplexml_load_file函数使用

例子

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(4) "George"

["from"]=> string(4) "John"

["heading"]=> string(8) "Reminder"

["body"]=> string(29) "Don't forget the meeting!"

}

假如有一个“iciba.xml”文件,其内容如下:

代码如下

<?xml version="1.0" encoding="UTF-8"?>

<dict num="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); //第一部分www.111cn.net

$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>";

}