SimpleXML操控XML

时间:2023-11-25 16:05:02

复杂字符串如下:

$_xml=<<<_xml
<?xml version="1.0" encoding="utf-8"?>
<root> <version>1.0</version>
<version>2.0</version>
<version>3.0</version>
<info>xml解析测试</info> <user>
<name>党兴明</name>
<url>http://www.baidu.com</url>
<author sex="男" height="180">我我我</author>
</user> <user>
<name>周林</name>
<url>http://www.baidu.com</url>
<author sex="女" height="170">谁谁谁</author>
</user> <user>
<name>电驴</name>
<url>http://www.baidu.com</url>
<author sex="男">姓黄的</author>
</user> </root>
_xml;

1 生成XML文件

    //创建一个simpleXML对象,传入XML字符串
$_sxe = new SimpleXMLElement($_xml);
//生成XML文件
$_sxe->asXML('test.xml');

2 载入XML文件

    //使用simpleXML载入
$_sxe = simplexml_load_file('test.xml');

3 解析载入的XML文件

    //
echo $_sxe->asXML();
//
print_r($_sxe);
//
var_dump($_sxe);
//
Reflection::export(new ReflectionClass($_sxe));

4 读出XML数据

    //读一级标签的值
echo $_sxe->version;
print_r($_sxe->version);
foreach ($_sxe->version as $v){
echo "<br />$v";
}
//读取二级标签,需要一层一层的指明
echo $_sxe->user[0]->name;
foreach ($_sxe->user as $user){
echo "$user->name";
}
//输出第二个user里的作者的属性
print_r ($_sxe->user[1]->author->attributes());

5 使用xpath()获取节点

    //获取节点
$_name = $_sxe->xpath('/root/user/name');
print_r($_name);