201950 (有效)解析XML数据错误:文本内容中发现无效字符

啊,把这么完美的数字留给了这篇重量级的文章。

陆科说,这是工作的亮点,一定要记录下来。

是这样的:
我们一个同事的风险管理平台,在别人的电脑上能够正常打开标签,看到自己的任务列表。
但是到了自己电脑上,打开来就提示:

解析XML数据错误:文本内容中发现无效字符。
Line:1
Linepos:117
srcText:
<?xml  version=”1.0” encoding=”GB23212”?> 
<CtaisSession><Service><RtnCode>0</RtnCode><RtnMsg><Code>2000</Code><Message>

点击 确认

跳出新的警告信息

请求数据时发生错误,可能由以下原因引起:      
1.浏览器不能连接到后台服务器(可能是由于长时间未与服务器连接而导致会话失效。);
2.服务器返回的数据格式错误。
请稍后重新登录或与系统管理员联系。

点击确认后,页面可以正常显示,但是,任务列表就是为空。

这就奇怪了。问题虽小,但是同事就没法正常工作了。

首先,可以确定,在别的电脑上能够正常打开
说明不是应用自己的问题,在于客户端的具体配置。

换了360浏览器,火狐浏览器(此前用的IE浏览器)
都报了同样的错误。
说明,不是个别浏览器设置的问题,是系统问题。

根据错误提示,貌似是字符集的问题
可是,别的应用,能够正常显示中文,而且即便我在环境变量里加NLS_LANG,如果XML中不调用的话,加了也是白搭。
其实,我看这个表象,倒像是 数据库只加载了表头,没能把表里的内容加载出来。但是,到底是什么原因呢?不得而知。

百般无奈,仔细研究IE的加载项:
在 IE-工具-管理加载项,看到了一个插件的名字有 XML 字样!
XML DOM Document!

惊喜万分!
试着禁用了这个插件(加载项),再点击进去,不报错了!
开心极了!
说明找到问题的根源了!
但是,任务列表 还是没能加载出来。
再仔细看这个插件,发现它是 C:\Windows\System32\msxml3.dll。
哦,说明是这个动态链接库不是非常正确呗。
于是,跑到别的电脑上,仔细比对了以下,发现别的电脑上的msxml*.dll比这台电脑的dll 大几K。
难道真的是这台电脑上的xml的动态链接库不够新?
试着把别的电脑上的msxml*.dll 拷贝至该电脑。
再去打开这个应用,发现一切正常了~

后续:
记得先保存自己本机的dll
不允许覆盖的dll,那就不要强制覆盖,因为那可能是系统最核心的东西了。
还有,插件刚才禁用过,记得起用。

花絮:
这次解决能够顺利解决这个问题,得益于自己的沉着冷静。
没因为出现了问题焦躁不安。
仔细研究插件,然后发现插件的位置,然后去比较动态链接库大小,进行动态链接库的更新。
这些,每一步,都紧密相关,也都非常重要。缺了任何一环,都不能顺利解决问题。

TIPS:

仔细观察,冷静分析,寻找关联。
不到万不得已不要重装系统。

发布了83 篇原创文章 · 获赞 18 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/Partner2016/article/details/103257844