首页 > php学习 > php基础知识 > 使用SimpleXML创建和读取XML
2016
12-16

使用SimpleXML创建和读取XML

PHP5推出了一套新的XML处理函数SimpleXML。SimpleXML本身小巧精干,只提供了少量的几个方法函数,但用它处理起 XML 文件功能却非常强大,操作也非常的简单。

一、创建XML文件

1、使用标识符创建XML文档模版:

$xml_public=<<<xml

<?xml version="1.0" endcoding="utf-8"?>

<root>

<info>xml文件模版1</info>

<info>xml文件模版2</info>

<info>xml文件模版3</info>

<user>

<name minzu="汉">name1</name>

<age>25</age>

<sex>man</sex>

</user>

<user>

<name minzu="满">name2</name>

<age>28</age>

<sex>woman</sex>

</user>

...

</root>

xml;

2、创建对象解析xml字符串

$_xml=new SimpleXMLElement($xml_public);

3、生成XML文件

$_xml->asXML('text.xml');

$_xml->saveXML('text.xml');//这两种方法效果完全相同,只不过是一个别名而已。

二、读取XML文件

1、载入XML文件

$r_xml=simplexml_load_file('tesr.xml');

或者$r_xml=simplexml_load_string($_xml);//载入XML字符串

2、读取XML数据

echo $r_xml->asXML(); //打印整个XML文件的内容

echo $r_xml->info;//打印info标签的值

如果有多个相同的标签,可以使用下标来或者指定的第几个标签的值,如获取第二个就是$r_xml->info[1],$r_xml->info是一个具有特殊性的由标签内容组成的数组,可以使用foreach遍历,但是如果不指定下标的话也能打印出来,默认打印第一个值。

echo $r_xml->user[1]->name;//打印第二个user标签下的name标签的值

echo $r_xml->user[0]->name->attributes();//打印打印第一个user标签下的name标签的属性值,只能获取到第一个属性的值,如果有多个属性,后面的获取不到值。

3、通过XPath方法来获取节点值

$info=$r_xml->xpath('/root/info');//通过xpath获取节点信息,$info返回一个数组(即使只有一个指定标签)。

echo $info[1];

$user=$r_xml->xpath('/root/user');// 访问二级节点

echo $_user[1]->name;

echo $_user[0]->name->attributes();// 访问属性

最后编辑:
作者:qingheluo
这个作者貌似有点懒,什么都没有留下。