2013-08-07 4 views
0

SAXParser를 통해 읽고있는 XML 파일이 있는데 올바르게 읽는 데 문제가 있습니다. XML은 다음과 같이 구성됩니다.Android SAXParse 태그 사이에 값 가져 오기

<game> 
    <players> 
    <player> 
     <name>Player 1</name> 
     <score>100</score> 
    </player> 
    </players> 
</game> 

태그 사이에 값을 읽으려면 Android SAXParser를 어떻게 가져올 수 있습니까? 이 코드는 가지고 있지만 태그 사이의 텍스트가 아니라 속성을 찾고 있습니다.

@Override 
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { 

    if(localName.equals("name")) { 
     names.add(attributes.getValue("name")); 
    } 
    else if(localName.equals("score")) {  
     scores.add(Integer.parseInt(attributes.getValue("score"))); 
    } 

} 

답변

0

색소폰에서 별도로

http://docs.oracle.com/javase/tutorial/jaxp/sax/parsing.html

@ 색소폰에 대한

http://www.mkyong.com/java/how-to-read-xml-file-in-java-sax-parser/

더 많은 정보 @ 예에서 그리기 당신은 권장 xmllpullparser 살펴 있어야합니다.

문서에서 인용.

에서 XML을 구문 분석하는 효율적이고 유지 보수가 쉬운 방법 인 XmlPullParser를 권장합니다.

확인

http://developer.android.com/training/basics/network-ops/xml.html

public void readxml(){ 
     try { 

     SAXParserFactory factory = SAXParserFactory.newInstance(); 
     SAXParser saxParser = factory.newSAXParser(); 

     DefaultHandler handler = new DefaultHandler() { 

     boolean bname = false; 
     boolean bscore = false; 


     public void startElement(String uri, String localName,String qName, 
        Attributes attributes) throws SAXException { 

      if (qName.equalsIgnoreCase("name")) { 
       bname = true; 
      } 

      if (qName.equalsIgnoreCase("score")) { 
       bscore = true; 
      } 
     } 

     public void endElement(String uri, String localName, 
      String qName) throws SAXException { 

     } 

     public void characters(char ch[], int start, int length) throws SAXException { 

      if (bname) { 
       Toast.makeText(getApplicationContext(), new String(ch, start, length), 10000).show(); 
       bname = false; 
      } 

      if (bscore) { 
       Toast.makeText(getApplicationContext(), new String(ch, start, length), 10000).show(); 
       bscore = false; 
      } 
     } 
     }; 

      saxParser.parse("myxmltoparse", handler); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 

     } 
} 
@ 링크
관련 문제