Я пытаюсь получить значение CDATA в JDOM2 с помощью getText(), но получаю только следующее: <![CDATA[ ]]>
Мой XML выглядит следующим образом
<ROOT>
<CHILD>
<P><![CDATA[<ROOT><ELEMENT>SOMECONTENT</ELEMENT></ROOT>]]></P>
</CHILD>
</ROOT>
CDATA содержит XML-контент, который мне нужен в виде строки для его хранения, код elsewejhere (фрагмент) выглядит следующим образом:
XPathFactory xpfac = XPathFactory.instance();
XPathExpression<Element> xElements = xpfac.compile(sXpath,Filters.element(),null,Namespace.getNamespace("myns", "http://www.namespace.com/ns"));
List<Element> elements = xElements.evaluate(doc);
for (Element xElem : elements) {
if(!isCDATA)
{
sRetval=xElem.getValue();
}
else
{
sRetval=xElem.getText();
}
return sRetval;
}
getValue()
работает нормально, тогда как getText()
возвращает только <![CDATA[ ]]>
конечно, мой XPAHT выглядит так //ROOT/CHILD/P
Любая идея, как я могу получить содержимое CDATA?
Изменить: если я заменяю <P><![CDATA[ SOMECONTENT]]></P>
, я получаю "SOMECONTENT". Поэтому я не могу получить содержимое XML из CDATA.
text
узлаCDATA
? Кажется, что должно быть достаточно просто получитьtext
илиvalue
содержащего тега<P>
. - person millimoose   schedule 14.04.2013getValue()
работает нормально, почему бы просто не использовать его? - person millimoose   schedule 14.04.2013getValue()
возвращает не все cdata, а только содержимое TEXT из CDATA (без тегов ‹ELEMENT›) Мин. мой случай - person KK99   schedule 15.04.2013