Прежде всего: никогда не подавляйте исключения (если вы не сжимали пример кода).По крайней мере, поместите e.printStackTrace();
туда
catch(ParserConfigurationException | SAXException | IOException | DOMException e)
{
e.printStackTrace();
}
Второе: ваш код не должен компилироваться - в catch
- XPathException
отсутствует третье (и основное): после добавленияXPathException
ваш код работает, но вы должны знать, какой XPath вы вводите в качестве ввода.(пожалуйста, прочитайте документы и руководства по XPath).
Это не так просто, как просто имя узла, которое вы хотите получить.Пока вы запускаете его из верхнего документа - да, вы можете ввести gemstone
- потому что это корневой элемент, но для других узлов вы должны предоставить действительный XPath - в противном случае вы ничего не получите.
Кстати попробуйтечтобы сделать ваше утверждение для печати более информативным для отладки, например:
System.out.println(node.item(x).getNodeName()+" " + node.item(x).getTextContent());
Позже вы можете сделать более красивым ...
Итак, попробуйте несколько примеров:
gemstone
gemstone/Name/@name
gemstone/geographicaldistribution/*
gemstone/geographicaldistribution/country
//country[3]
//country[text()='Texas']