Я пытаюсь извлечь информацию «ref» для каждого «nd» под элементом «way». Я попытался использовать обычный Java-анализатор xml и XPath, но до сих пор не могу понять, как получить несколько дочерних узлов.Извлечь атрибут элемента из XML
<?xml version='1.0' encoding='UTF-8'?>
<osm version="0.6" generator="Osmosis 0.43.1">
<node id="95946773" version="3" timestamp="2009-11-14T15:52:46Z" uid="17427" user="dysteleologist" changeset="3114170" lat="26.2870135" lon="-80.2120936"/>
<node id="95946776" version="3" timestamp="2010-10-23T15:07:03Z" uid="207745" user="NE2" changeset="6146275" lat="26.2870058" lon="-80.2128489"/>
<way id="226137459" version="1" timestamp="2013-06-17T20:19:27Z" uid="1119200" user="wagn" changeset="16595491">
<nd ref="2349898722"/>
<nd ref="2349898723"/>
<nd ref="2349898724"/>
<nd ref="2349898725"/>
<nd ref="2349898726"/>
<nd ref="2349898730"/>
<nd ref="2349898727"/>
<nd ref="2349898728"/>
<nd ref="2349898729"/>
<nd ref="2349898722"/>
<tag k="building" v="house"/>
</way>
</osm>
Мой код для извлечения элемента «путь».
NodeList wList = doc.getElementsByTagName("way");
for (int temp = 0; temp < wList.getLength(); temp++) {
Node wNode = wList.item(temp);
if (wNode.getNodeType() == Node.ELEMENT_NODE) {
Element wElement = (Element) wNode;
output_str = "";
output_str += wElement.getAttribute("id")+ " ";
System.out.println(wElement.getElementsByTagName("nd").item(0).getAttribute("ref"));
Это изменить последнюю печать линию ниже
System.out.println(wElement.getElementsByTagName("nd").item(0).getNodeName());
Это фактически выводит «й» в качестве имени узла, но я не могу получить атрибуты узла.
В javascript он работает, как показано ниже, но этот синтаксис не работает на Java.
System.out.println(wElement.getElementsByTagName("nd")[0].getAttribute("ref"));
Спасибо,
Тони
пытается с помощью контекста JAXB Маршаллу и маршализацию –
Extract как? Покажите код Java, который вы пробовали до сих пор. –