xml文件符合规范,不是一个形式良好的xml文件,不能进行解析

解决方案 »

  1.   

    还有个怪问题
    characterData($parser,$data) 这个读取标签内数据的函数
    本来一个标签应该是读一次, 不知怎么有时一个标签读了二三次,其中第一次$data有正常的值
    后面几次$data都为空,这样导致了即使能读完xml数据,得到的结果都为空值,怎么想都不明白单步调试了一下,它好像是这样执行的:  遇到一个标签
    先执行 startElement
    然后执行 characterData
    再执行 endElement在这里本来应该 进行下一个标签的解析的, 可是它又跳到 characterData 里开始执行
    并且$data为空字符口串, 并且连续执行了2次实在是想不通
      

  2.   

    问题解决了,主要是服务器的配置不同, $this->var_parser = xml_parser_create('UTF-8');
    这里不知怎么不能用 'UTF-8', 去掉'UTF-8'后
    并且将 $data = @iconv('UTF-8', 'GB2312', $data); 注释掉然后将characterData函数里的 if($data != '') 改为 if(trim($data) !== '') 就正常了服务器正常后,放到本机运行,中文都变成乱码,这个可能是服务器的默认编码与我本机的不同吧我也不知道!经过这无数次的调试, 虽然解决了问题, 但是这些问题还是想不通我这个XML类 并没什么特殊之处,主要是参照手册里做的, 怎么执行的流程是这样的呢?难道php操作xml 本来就是这样? 无解? 希望有心人能帮助我~`