Я использую итерацию по всем узлам в XML-документе:Как напечатать ФАКТИЧЕСКУЮ TextContent в узле с использованием документа в Java
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory
.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document document = docBuilder.parse(new File(path)); //path is path to xml document
NodeList nodeList = document.getElementsByTagName("*");
for (int i = 0; i < nodeList.getLength(); i++) {
Node node = nodeList.item(i);
if (node.getNodeType() == Node.ELEMENT_NODE) {
// do something with the current element
System.out.println(node.getNodeName() + ": " + node.getTextContent());
}
}
Источник: Java: Most efficient method to iterate over all elements in a org.w3c.dom.Document?
И я хочу печати текста каждого узла.
Когда я вызываю node.getTextContent()
, он возвращает мне строку всех дочерних элементов в этом узле.
Пример:
<chanel>
<car>opel</car>
<color>orange</color>
</chanel>
Выход:
chanel: opel
orange
car: opel
color: orange
Но .. вещь does't Шанель есть текст Опеля и апельсин? Как печатать только текст в фактическом узле?
Как это:
Шанель: нулевой автомобиля: Opel цвета: оранжевый
Спасибо за любую помощь!