Я использую парсер com.sun.org.apache.xerces в JDK 1.8 rt.jar с eclipse luna. Разбор XML-документа с атрибутом и секцией CDATA, которые содержат одинаковые строки, состоящие из китайских символов, например:
<tns:metaData tns:name="? - ? - ??">
<tns:metaValue><![CDATA[? - ? - ??]]></tns:metaValue>
</tns:metaData>
После синтаксического анализа строка атрибута выглядит так:
? - ?? - ???????
т.е. некоторые из символов (или пар символов) дублируются, но текст с CDATA выглядит хорошо:
? - ? - ??
Кто-нибудь сталкивается с подобной проблемой? Любая помощь будет оценена по достоинству.
Я думаю, что ответ "да, это ошибка в версии xerces Sun/Oracle". Я просто попробовал это с последней версией от 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"
Привет, Боб