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();// 访问属性
- 本文固定链接: https://www.qingheluo.com/shiyongsimplexmlchuangjianheduquxml/
- 转载请注明: qingheluo 于 清河洛 发表