2012-05-27 2 views
0

나는 이것에 관한 많은 문서를 알고 있지만, 나는 그것을 얻을 수 없다. 나는 잠시를 찾고 있었고, 이것에 대해 밝히기 위해 나의 특정한 상황에 대한 도움을 받고 싶다.안드로이드에서 XML 문자열 분석하기

<groups> 
<group> 
    <id>35</id> 
    <sport>Racing</sport> 
    <name>Indianapolis 500</name> 
    <date>27/4/2012</date> 
    <time>12:00</time> 
    <period>PM</period> 
    <location>Indiana</location> 
</group> 
<group> 
    <id>36</id> 
    <sport>Baseball</sport> 
    <name>Miami Heat game</name> 
    <date>27/4/2012</date> 
    <time>3:00</time> 
    <period>PM</period> 
    <location>Miami, FL</location> 
</group> 
</groups> 

내가 takeNameGetID라는 방법 XmlParser가라는 다른 클래스는, 그것은 XML의 전체 문자열과 그것의 이름의 문자열을 사용했다 :

나는 읽고 XML의 문자열을 얻기 위해 HTTP 클라이언트를 사용 <name>에서 찾고 해당 이름을 가진 "블록"을 찾고 해당하는 <id>을 정수로 반환해야합니다. 그것이 나를 혼란스럽게합니다.

public int takeNamegetID(String name, String allXML) { 
    //This is what I can't figure out 
} 

나는과 같이 첫 번째 클래스에 전화 해요 :

XMLparser parser = new XMLparser(); 
int actualId = parser.takeNamegetID(getGroupString(), getGroupXML()); 

두 가지 방법, getGroupString()getGroupsXML() 오히려 자기가 설명이 필요합니다. 하나는 문자열로 찾고 다른 하나는 전체 XML을 얻습니다.

내가 원하는 takeNamegetID 메소드의 구현을 보여주는 예제 또는 누군가가 필요합니다. 나는 영원히보고 있었고, 나는 나의 특정한 문제를 묻는 것이 최선이라고 생각한다. 감사!

+1

XML 구문 분석, 특히 안드로이드 (타사 파서 또는 작동하지 않을 수있는 위치) 자세한입니다. 누군가가 당신을 위해 당신의 코드를 작성하기를 기대하는 것이 조금은있을 것입니다. 즉, SAX (http://exampledepot.com/egs/javax.xml.parsers/BasicSax.html) 또는 DOM (http://exampledepot.com/egs/javax.xml.parsers/BasicDom)을 사용할 수 있습니다. .html) 또는'XmlPullParser' (http://xmlpull.org/v1/download/unpacked/doc/quick_intro.html)을 참조하십시오. 처음 두 개는 여러 연령대의 자바로되어 있으며 많은 책과 블로그 게시물에서 다루고 있습니다. – CommonsWare

+0

확인. 내가 왜 그렇게 많은 어려움을 겪고 있는지에 관해서는 의미가 있습니다. 나는 단지 내가 뭔가를 놓쳤다 고 생각했지만 그것이 정말로 복잡하다고 생각합니다. 네가 나에게 준 첫 번째 SAX와 다시 한번 시도해 보겠다. Android 또는 Java에 내장되어 있습니까? 아니면 외부 패키지를 가져와야합니까? –

+0

내가 언급 한 세 가지 솔루션은 모두 Android에 내장되어 있습니다. – CommonsWare

답변

0

나는 당신이 SimpleXML (http://simple.sourceforge.net/download.php)을 사용하기를 제안한다. 나는 그것을 두 개의 안드로이드 프로젝트에 사용했다. 작고 사용하기 쉽다.

자바 코드 : 자바

import org.simpleframework.xml.Element; 

public class Group { 
@Element 
private int id; 
@Element 
private String sport; 
@Element 
... 

public int getId() { 
    return id; 
} 

public void setId(int id) { 
    this.id = id; 
} 
... 
} 


import java.io.File; 
import java.util.List;  
import org.simpleframework.xml.* 

public class Groups { 
    @ElementList(inline=true) 
    private List<Group> group; 

    public List<Group> getGroup() { 
     return group; 
    } 

    public void setGroup(List<Group> group) { 
     this.group = group; 
    } 

    public static void main(String[] args) throws Exception { 
     Serializer serializer = new Persister(); 
     Groups groups = serializer.read(Groups.class, your_xml_inputstream); 
     System.out.println(groups.getGroup().size()); 
    } 
} 
관련 문제