zoukankan      html  css  js  c++  java
  • php解析XML的两种方法

    <?php
    
    // @parser  解析器
    // @element 标签名字
    // @attribs 属性
    function xml_start ($parser, $element, $attribs) {
        echo $element . "
    ";
    }
    
    // @parser  解析器
    // @element 标签
    function xml_end($parser, $element) {
        echo $element . "
    ";
    }
    
    function xml_content($parser, $data) {
        echo $data . "
    ";
    }
    
    class First {
        function main () {
            $xmlStr = '
                <xml>
                <ToUserName><![CDATA[toUser]]></ToUserName>
                <FromUserName><![CDATA[fromUser]]></FromUserName>
                <CreateTime>1348831860</CreateTime>
                <MsgType><![CDATA[text]]></MsgType>
                <Content><![CDATA[this is a test]]></Content>
                <MsgId>1234567890123456</MsgId>
                </xml>
            ';
            
            // 初始化一个XML解析器
            $parser = xml_parser_create();
    
            // 遇到开始标签调用xml_start(), 结束调用xml_end()函数
            xml_set_element_handler($parser, "xml_start", "xml_end");
            // 标签有内容调用xml_content()
            xml_set_character_data_handler($parser, "xml_content");
            // xml解析
            xml_parse($parser, $xmlStr, true);
            // 释放内存
            xml_parser_free($parser);
        }
    }
    
     
    
    class Second {
        var  $xmlStr = '
        <xml>
        <ToUserName><![CDATA[toUser]]></ToUserName>
        <FromUserName><![CDATA[fromUser]]></FromUserName>
        <CreateTime>1348831860</CreateTime>
        <MsgType><![CDATA[text]]></MsgType>
        <Content><![CDATA[this is a test]]></Content>
        <MsgId>1234567890123456</MsgId>
        </xml>';
        
        function main() {
            // 加载XML
            $XML = simplexml_load_string($this->xmlStr);
            // 知道XML标签内容可以直接使用标签名
            echo $XML->ToUserName;
        }
    }
    
    //$first = new First();
    //$first->main();
    
    $second = new Second();
    $second->main();
    
    ?>
  • 相关阅读:
    虚拟化资料
    Windows线程+进程通信
    Linux进程+进程间通信IPC
    COM/DOM/COM+
    C# 2.0新特性与C# 3.5新特性[转]
    [CruiseControl]配置文件config.xml
    C#的Delegate和Event
    [BuildRelease Management]Visual Build
    软件培训机构
    可以自动输入密码的Runas
  • 原文地址:https://www.cnblogs.com/cgjh/p/11131859.html
Copyright © 2011-2022 走看看