"way"요소 아래에있는 각 "nd"에 대한 "ref"정보를 추출하려고합니다. 일반 자바 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>
"way"요소를 추출하는 코드.
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());
아래에 마지막 인쇄 라인을 변경 "차"노드 이름으로,하지만 난 노드의 속성을 얻을 수 없습니다.
자바 스크립트에서는 다음과 같이 작동하지만 자바에서는이 구문이 작동하지 않습니다.
System.out.println(wElement.getElementsByTagName("nd")[0].getAttribute("ref"));
감사합니다,
토니
가 JAXB 컨텍스트 마샬 방법 비 정렬 화 –
추출물을 사용하여 시도 : 첫째 자바 대신
[0]
의.item(0)
사용, 둘째 자바는 강력한 형식 때문에, 그리고getAttribute
이Element
보다는Node
하는 방법, 당신은 깁스를해야합니까? 지금까지 시도한 Java 코드를 보여주십시오. –