getText() を使用して JDOM2 で CDATA 値を取得しようとしていますが、次のものしか取得できません -
<![CDATA[ ]]>
私のXMLは以下のようになります
<ROOT>
<CHILD>
<P><![CDATA[<ROOT><ELEMENT>SOMECONTENT</ELEMENT></ROOT>]]></P>
</CHILD>
</ROOT>
CDATA には XML コンテンツが含まれており、それを格納するために文字列として必要です コード (スニペット) は以下のようになります
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 は次のようになります。CDATA
//ROOT/CHILD/P
のコンテンツを取得する方法を教えてください。
編集: <P><![CDATA[ SOMECONTENT]]></P>
「SOMECONTENT」を取得している場合、CDATA から XML コンテンツを取得できません。