参见http://community.csdn.net/Expert/topic/4202/4202101.xml?temp=.2045557
并令属性 $onlytag = array();
即可解析xml文档

解决方案 »

  1.   

    xuzuning(唠叨:你这行怎么报错啊  $ar = preg_split("/(<\/?\w+.*?>)/si",$string,-1,PREG_SPLIT_OFFSET_CAPTURE | PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE);
      

  2.   

    xuzuning(唠叨)请问你这个类怎么用啊,比如我现在已经把XML的内容读到变量$buffer中了,然后该怎么做呢?
      

  3.   

    不行啊xuzuning(唠叨),解析XML文件好像有问题啊,就是上面的XML文档,我是这样写的$listattachfile="D:\www\kl.xml";
    ($fd = fopen($listattachfile,"r")) || die("Error open $listattachfile!");;
    while ($buffer = fgets($fd, 4096)) {
    //echo $buffer;
    $g=2;
    }
    fclose($fd);$o = new THTMLtag;
    $o->parse($buffer);
    print_r($o->tag_list);
    echo $o->genHTML();而且$onlytag = array();可是显示的结果是“没有发现错误
    Array ( ) ”
      

  4.   

    $tpl = <<< HTML
    <?xml version=”1.0” encoding=”GBK”?>
    <!DOCTYPE user SYSTEM “orgArch.dtd”>
    <organization>
    <orgUnit id=”1” name=”市1局” />
    <orgUnit id=”2” name=”市1局分局” upid=”1”/>
    <orgUnit id=”3” name=”市2局”/>
    <orgUnit id=”4” name=”市2局分局” upid=”3”/>
    </organization>
    HTML;$o = new THTMLtag;
    $o->parse($tpl);
    print_r($o->tag_list);
    Array
    (
        [0] => Array
            (
                [tagname] => _text
                [tagoffs] => 0
                [tagdeep] => 0
                [value] => <?xml version=”1.0” encoding=”GBK”?>
    <!DOCTYPE user SYSTEM “orgArch.dtd”>        )    [1] => Array
            (
                [tagname] => organization
                [tagoffs] => 82
                [tagdeep] => 0
                [tagend] => 11
                [tagtype] => on
            )    [2] => Array
            (
                [tagname] => _text
                [tagoffs] => 96
                [tagdeep] => 1
                [value] =>         )    [3] => Array
            (
                [tagname] => orgunit
                [tagoffs] => 98
                [tagdeep] => 1
                [tagend] => -1
                [tagtype] => on
            )    [4] => Array
            (
                [tagname] => _text
                [tagoffs] => 135
                [tagdeep] => 2
                [value] =>         )    [5] => Array
            (
                [tagname] => orgunit
                [tagoffs] => 137
                [tagdeep] => 2
                [tagend] => -1
                [tagtype] => on
                [id] => ”2”
                [name] => ”市1局分局”
                [upid] => ”1”/
            )    [6] => Array
            (
                [tagname] => _text
                [tagoffs] => 186
                [tagdeep] => 3
                [value] =>         )    [7] => Array
            (
                [tagname] => orgunit
                [tagoffs] => 188
                [tagdeep] => 3
                [tagend] => -1
                [tagtype] => on
                [id] => ”3”
                [name] => ”市2局”/
            )    [8] => Array
            (
                [tagname] => _text
                [tagoffs] => 222
                [tagdeep] => 4
                [value] =>         )    [9] => Array
            (
                [tagname] => orgunit
                [tagoffs] => 224
                [tagdeep] => 4
                [tagend] => -1
                [tagtype] => on
                [id] => ”4”
                [name] => ”市2局分局”
                [upid] => ”3”/
            )    [10] => Array
            (
                [tagname] => _text
                [tagoffs] => 273
                [tagdeep] => 5
                [value] =>         )    [11] => Array
            (
                [tagname] => organization
                [tagoffs] => 275
                [tagdeep] => 4
                [tagend] => 0
                [tagtype] => off
            ))