复杂字符串如下:
$_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文件
//1 echo $_sxe->asXML(); //2 print_r($_sxe); //3 var_dump($_sxe); //4 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);