0

これに関するドキュメントが山ほどあることは知っていますが、入手できません。私はしばらく探していましたが、これに光を当てるために、私の特定の状況について助けを求めたいと思います.

HTTP クライアントを使用して、次のような 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 の文字列全体と、探している名前の文字列を取り、<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());

2 つの方法は、どちらかgetGroupString()getGroupsXML()いうと自明です。1 つは探している名前を文字列として取得し、もう 1 つは XML 全体をそれぞれ取得します。

私が必要としているのは、私が望む takeNamegetID メソッドの実装を示す例または誰かです。私はずっと探していましたが、特定の問題について尋ねるのが最善だと思います。ありがとう!

4

1 に答える 1

0

SimpleXML(http://simple.sourceforge.net/download.php) を使用することをお勧めします。私は 2 つの Android プロジェクトで使用しました。小さくて使いやすいです。

ジャバコード:

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());
    }
}
于 2012-05-28T03:16:01.947 に答える