SimpleXML操控XML

复杂字符串如下:

$_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);

 

posted @ 2016-12-26 14:55  党兴明  阅读(221)  评论(0编辑  收藏  举报