Подтвердить что ты не робот

DOMDocument getNodeValue() возвращает значение null (содержит выходную экранированную строку)

Я обрабатываю DomDocument, который в основном является результатом XML веб-службы SOAP. Чтобы дать вам представление, это выглядит так:

...<ParentNode><ChildNode>&lt;output&gt;&lt;escaped&lt;string</ChildNode></ParentNode>...

Да, значение ChildNode - это строка, которая была выведена экранированной, и является XML, который упакован в этот XML. Я выполняю обычный запуск обработки DomDocument, например

NodeList rows = dom.getElementsByTagName(ChildNode);
for(int i=0;i<rows.length;i++)
{
  System.out.println(rows[i].getParentNode()); // returns ParentNode
  System.out.println(rows[i].getNodeName()); // returns ChildNode
  System.out.println(rows[i].getNodeValue()); // returns null
}

После проверки вышеуказанного кода вы понимаете, что даже если node возвращает правильные значения для ParentNode и NodeName node, он возвращает нулевое значение при обращении к getNodeValue(). Здесь есть строка, и я могу видеть ее на выходе моей консоли. Но я не уверен, какой трюк мне здесь не хватает, выходит ли выход из него каким-то особым образом?

Спасибо, Parijat

4b9b3361

Ответ 1

Вы хотите getTextContent(), а не getNodeValue() - последний всегда возвращает null для узлов элемента.

Ответ 2

Вместо строк [i].getNodeValue() используют строки [i].getNodeValue(). getChildNodes(). item (0).getNodeValue()