Java Sun/Oracle xerces 解析器错误?
Java Sun/Oracle xerces parser bug?
我在 JDK 1.8 rt.jar 中使用 com.sun.org.apache.xerces 解析器和 eclipse luna。解析一个 XML 文档,其属性和 CDATA 部分包含相同的字符串,由中文字符组成,如下所示:
<tns:metaData tns:name=" - - ">
<tns:metaValue><![CDATA[ - - ]]></tns:metaValue>
</tns:metaData>
解析后,属性字符串如下所示:
- -
即一些字符(或字符对)重复,但 CDATA 中的文本看起来不错:
- -
有没有人运行遇到过类似的问题?任何帮助将不胜感激。
我想答案是 "yes, it is a bug in the Sun/Oracle version of xerces." 我刚刚用 apache 的最新版本试了一下,它成功了!
请注意,如果您要使用命令行 -Djava.endorsed.dirs="..." 开关,您需要同时添加 xerces 和 xalan 二进制文件,因为 eclipse 需要它。对于 windoze,它类似于:
-Djava.endorsed.dirs="C:\Program Files (x86)\Java\xerces-2_11_0"
-Djava.endorsed.dirs="C:\Program Files (x86)\Java\xalan-j_2_7_2"
干杯,
鲍勃
我在 JDK 1.8 rt.jar 中使用 com.sun.org.apache.xerces 解析器和 eclipse luna。解析一个 XML 文档,其属性和 CDATA 部分包含相同的字符串,由中文字符组成,如下所示:
<tns:metaData tns:name=" - - ">
<tns:metaValue><![CDATA[ - - ]]></tns:metaValue>
</tns:metaData>
解析后,属性字符串如下所示:
- -
即一些字符(或字符对)重复,但 CDATA 中的文本看起来不错:
- -
有没有人运行遇到过类似的问题?任何帮助将不胜感激。
我想答案是 "yes, it is a bug in the Sun/Oracle version of xerces." 我刚刚用 apache 的最新版本试了一下,它成功了!
请注意,如果您要使用命令行 -Djava.endorsed.dirs="..." 开关,您需要同时添加 xerces 和 xalan 二进制文件,因为 eclipse 需要它。对于 windoze,它类似于:
-Djava.endorsed.dirs="C:\Program Files (x86)\Java\xerces-2_11_0"
-Djava.endorsed.dirs="C:\Program Files (x86)\Java\xalan-j_2_7_2"
干杯, 鲍勃