使用SimpleXML创建和读取XML
qingheluo2016-12-16清河洛277
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</...
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');//载入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方法来获取节点值
$user=$r_xml->xpath('/root/user');
//通过xpath获取节点信息,$user返回一个数组
echo $_user[1]->name; // 访问二级节点
echo $_user[0]->name->attributes();// 访问属性