У меня возникают некоторые проблемы с получением прав и их значений Node
от Document
, я выполняю WebService, который возвращает XML, этот WS может вернуть две версии XML:
XML с «ОК» код:
<?xml version="1.0" ?>
<data>
<ENTRY1 CODE="00" MESSAGE="MESSAGE"/>
</data>
XML с «ОШИБКА» код:
<?xml version="1.0" ?>
<Root>
<Error DescErr="Error Description"/>
</Root>
Тогда я могу обнаружить <Error/>
Node
в этом случае, но когда я пытаюсь получить Node
<data>
и их потомка <ENTRY1/>
и свойства CODE
и MESSAGE
, которые я получаю, и исключение, когда я пытаюсь проанализировать Node
в Element
:
java.lang.ClassCastException: com.sun.org. apache.xerces.internal.dom.DeferredTextImpl не может быть преобразован в org.w3c.dom.Element
Это мой код:
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = dbFactory.newDocumentBuilder();
Document xmlDom = docBuilder.parse(new InputSource(new StringReader(response.toString())));
if (xmlDom.hasChildNodes()) {
NodeList listNodos = xmlDom.getElementsByTagName("Error");
if (listNodos.getLength() > 0) {
System.out.println("errors");
} else {
listNodos = xmlDom.getElementsByTagName("data");
if (listNodos.getLength() > 0) {
for (int x = 0; x < listNodos.getLength(); x++) {
Node aux = listNodos.item(x);
if (aux.hasChildNodes()) {
Node aux2 = aux.getFirstChild();
System.out.println(aux2.getNodeName());
Element element = (Element) aux2;//EXCEPTION THROWS HERE
}
}
}
}
}
Может дать мне любое предположение, что чтоЯ делаю не так?