Вот код:Невозможно преобразовать строку в DOM в Java
Response resp = tkMarC.getClock(TK_Base.Format.xml);
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
String xml = resp.getBody();
System.out.println(xml);
StringReader sr = new StringReader(xml);
InputSource is = new InputSource(sr);
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document docu = db.parse(is);
if (docu != null)
{
NodeList nl = docu.getChildNodes();
for(int i=0; i<nl.getLength(); i++)
{
System.out.println(nl.item(i).toString());
}
}
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
А вот выход из System.out.println (XML)
<?xml version="1.0" encoding="UTF-8"?>
<response id="-5b6df009:14ebc2afaf9:-3779">
<date>2015-07-23 14:30:25.134000</date>
<status>
<current>open</current>
<next>after</next>
<change_at>16:00:00</change_at>
</status>
<message>Market is open</message>
<unixtime>1437676225</unixtime>
</response>
Однако объект стер всегда показывает : Длина символьного потока равна 307, но str равна нулю Объект документа всегда показывает: document = (com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl) [#document: null]
и, следовательно, нет ChildNodes не извлекаемый как это то, что получает выход: [ответ: пустой] на консоли, когда код входит в цикл на г = 0
Что я здесь отсутствует? Я также попытался преобразовать сообщение в поток байтов через ByteArrayInputStream (xml.getBytes()); и передать, что в качестве источника ввода, но получил тот же результат, я думаю, что я не совсем понимаю и не смог найти поиск на форумах.
Вы правы, но все Nodes возвращают значение Null по какой-то причине не должны содержать элемент: return open для его значения узла? Я получаю следующее для каждого: Имя узла: текущий \t Значение узла: null Когда я меняю код на NodeList nl = document.getElementsByTagName («текущий»); для (int i = 0; i
Tikky
Ok nevermind Мне нужно использовать getTextContent, а не getNodeValue для извлечения значения в элементе node. Немного путаю, но теперь я знаю, что спасибо за быстрый ответ, который я помечаю как правильный. – Tikky