У меня есть xml.Чтение значения CDATA в комментариях xml java
<add-item item-descriptor="sku" id="235957441">
<set-property name="skuType"><![CDATA[NORMAL]]></set-property>
<set-property name="isPartOfClearancePriceList"><![CDATA[false]]></set-property>
<set-property name="size"><![CDATA[Single set]]></set-property>
<!-- rdonly <set-property name="prices"><![CDATA[then2price=-1.0,clearanceprice=-1.0,then1price=-1.0,extravaganzaprice=-1.0,wasprice=-1.0,nowprice=10.0]]></set-property> -->
<!-- rdonly derived <set-property name="dissectionName"><![CDATA[DUVETCOVERCOL2]]></set-property> -->
</add-item>
В приведенном выше XML, Я читать значения then2price
, clearanceprice
, then1price
из prices
комментария с помощью кода Java.
Мне удалось прочитать комментарии, но не удалось прочитать комментарии CDATA
.
Java код:
NodeList nl = doc.getDocumentElement().getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
if (nl.item(i).getNodeType() == Element.COMMENT_NODE) {
Comment comment = (Comment) nl.item(i);
// System.out.println(comment.getNodeValue());
Node child = nl.item(i);
if(child instanceof CharacterData){
CharacterData cd = (CharacterData) child;
System.out.println(cd.getNodeValue());
}
}
Приведенный выше код не печатает значения внутри CDATA, она печатает полный комментарий.
Мне просто нужно then2price=-1.0,clearanceprice=-1.0,then1price=-1.0,extravaganzaprice=-1.0,wasprice=-1.0,nowprice=10.0
на выходе.
Большое спасибо заранее.