笑容传天下


simpleXML:String could not be parsed as XML

原文: <a href="http://oo8h.com/news_685.html"> http://oo8h.com/news_685.html </a>

这个问题是在创建SimpleXML的时候遇到的。它对XML的要求比较高标准,必须符合 要求否则很容易抛出异常(Uncaught exception )而且通过try和catch 无法截获。不过,最后还是找到了问题的原因,从源头解决而不是通过try来忽视它。

原文: <a href="http://oo8h.com/news_685.html"> http://oo8h.com/news_685.html </a>

最近在处理一个中文的XML数据到数据库的时候,常会出现这个错误,前几次直接想办法忽略过去,但是失败了。甚至都没有办法把错误掩藏起来继续执行下去。

起初的思路是遮盖错误的。 使用 @ 在语句前面,失败。

try catch 失败。

遮盖不了,怀疑是编码问题,XML标记的是 gb2312的,于是就先自己转换成 utf-8试试,还是 失败。

加入 LIBXML_NOERROR 参数,还是失败。

忽然想看看出错的内容,察看到内容包含繁体字,这是问题的所在么?

搜索时候偶然看到 gbk 和 gb2312的区别就是 gbk是 gb标准字库增加了对繁体字的扩展支持。 于是改转换为 gbk到utf-8 问题解决了。

当然,在这个编码问题之前,还遇到了很多xml格式上的错误,都给修正后,就剩下处理这个错误了,现在转换程序正在运行中。不知道是否还会给我抛出个新的异常否?

参考:

http://www.google.com/search?q=gbk%20gb2312&hl=zh-CN

http://www.php.net/manual/zh/ref.simplexml.php

http://www.php.net/manual/zh/function.simplexml-element-construct.php

http://www.php.net/manual/zh/ref.libxml.php#libxml.constants


在Google中搜索关于simpleXML:String could not be parsed as XML 的内容


历史存档

版权所有 2001年 - 2008年 笑容的八小时外   辽ICP备05000521号
本网站中所涉及的商标和注册商标,均由其持有人所有,相关内容均来自互联网发表或本网站作者创作;
创作部分采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。
  firefox 2
计数器