注册 登录

清河洛

使用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();// 访问属性


网址导航