2013-04-24 5 views
0

아래에 게시 된 Java 코드를 사용하여 "x"값을 표시하려고하지만 아무 것도 표시하지 않습니다.XML 요소의 속성 읽기

<?xml version="1.0" encoding="UTF-8"?> 
<document> 
<group id="Fontanestra"> 
<place x="4222873.962227057" y="2902240.7064015563" class="hdlamp lamp651 
Fontanestra"/> 
<place x="4222675.856667058" y="2902341.1436763224" class="hdlamp lamp745 
Fontanestra"/> 
<place x="4222761.571650493" y="2902285.145924819" class="hdlamp lamp871 
Fontanestra"/> 
<place x="4222703.30618614" y="2902320.7303823503" class="hdlamp lamp972 
Fontanestra"/> 
<place x="4222802.65477977" y="2902265.5807657656" class="hdlamp lamp1084 
Fontanestra"/> 
<place x="4222935.246730494" y="2902220.7360558496" class="hdlamp lamp1110 
Fontanestra"/> 
<place x="4222734.639113373" y="2902300.2547685634" class="hdlamp lamp1215 
Fontanestra"/> 
<place x="4222837.368032"  y="2902252.747460649" class="hdlamp 
lamp1225 Fontanestra"/> 
<place x="4222904.859771981" y="2902230.8135758354" class="hdlamp lamp1336 
Fontanestra"/> 

</group>   
</document> 
+0

당신이 그것을 디버깅을 시도해 봤어을? – BobTheBuilder

답변

4
가 가

는 지금까지 내가 XML을 이해, "장소"는 아닙니다

if(eElement.getAttribute("place") != null){ 
:

자바 코드 :

for (int temp = 0; temp < nList.getLength(); temp++) { 
    Node nNode = nList.item(temp); 
    System.out.println("\nCurrent Element :" + nNode.getNodeName()); 
    System.out.println("\n"+nList.getLength()); 
    if (nNode.getNodeType() == Node.ELEMENT_NODE) { 
    Element eElement = (Element) nNode; 
    if(eElement.getAttribute("place") != null){ 
     System.out.println("x: " + eElement.getElementsByTagName("place").item(0).getTextContent());  
    } 
    } 
} 

XML 파일 내 실수가 어디 있는지 알려주세요 속성

if (nNode.getNodeType() == Node.ELEMENT_NODE) { 
    Element eElement = (Element) nNode; 
    if ("place".equalsIgnoreCase(eElement.getTagName())){ 
     System.out.println("x: " +  eElement.getAttribute("x"));  
    } 
} 
+0

이것은. 유일한 속성은 x, y, class 및 id입니다. –

0

드, 나는 nList는 전화를 얻었다 생각 :

따라서
NodeList nList = someDocument.getElementsByTagName("group"); 

당신이 당신의 루프 구조 조정, 플러스 속성 추구보다는 이름으로 대신 검색해야합니다

for (int i = 0; i < nList.getLength(); i++) { 
    Node groupNode = nList.item(i); 

    NodeList placeList = groupNode.getChildNodes(); 

    for (int j = 0; j < placeList.getLength(); j++) { 
    Node placeNode = placeList.item(j); 

    if (placeNode instanceof Element) { 
     Element element = (Element) placeNode; 

     if ("place".equalsIgnoreCase(element.getTagName())) { 
     System.out.println("x: " + element.getAttribute("x")); 
     } 
    } 
    } 
}