Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Jsoup和arraylistandroid_Java_Android_Xml_Jsoup - Fatal编程技术网

Java Jsoup和arraylistandroid

Java Jsoup和arraylistandroid,java,android,xml,jsoup,Java,Android,Xml,Jsoup,我使用jsoup为一个元素成功地从xml内容中提取标记 class Post { private String a; private String b; public void setA (String a){ this.a = a; } public void setB(String b){ this.b =b; } public String getA(){ return a; } public String getB(){ return b

我使用jsoup为一个元素成功地从xml内容中提取标记

class Post {

private String a;
private String b;


public void setA (String a){
       this.a = a;

}


public void setB(String b){
       this.b =b;

}

public String getA(){

return a;
}

public String getB(){

return b;
}

} 
通过使用arraylist

public ArrayList<Post> PostList = new ArrayList<Post>();

Xml:

<soap:Envelope xmlns:soap="schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
        <wsListeCompt> 
            <comptes> 
                <a>pen drive</a> 
                <b>jsoup</b> 
            </comptes> 
            <comptes> 
                <a>pen drive</a> 
                <b>jsoup</b> 
            </comptes> 
            <comptes> 
                <a>pen drive</a> 
                <b>jsoup</b> 
            </comptes> 
        </wsListeCompt> 
    </soap:Body> 
</soap:Envelope>
    Elements aElements = doc.select("a");
    Elements bElements = doc.select("b");


    // This 'if-else' block is optional
    if( aElements.size() != bElements.size() )
    {
        // Error handling - if required
    }
    else
    {
        // Iterate over all elements
        for( int i = 0; i < aElements.size(); i++ )
        {
            Post p = new Post();    // Create a Post

            p.setA(aElements.get(i).text());    // Set A Value
            p.setB(bElements.get(i).text());    // Set B Value

            PostList.add(p);    // Add the Post to List
        }
    }

笔式驱动器
jsoup
笔式驱动器
jsoup
笔式驱动器
jsoup

此代码不会编译,因为
select()
将返回
元素
对象,而不是
元素

Elements aElements = doc.select("a"); // Select all a-elements
Elements bElements = doc.select("b"); // Select all b-elements
现在,您可以迭代找到的所有元素,并根据需要存储它们:

for( Element element : aElements )
{
    postList.add(element.text());
}
(对b元素也要这样做)


示例:

<soap:Envelope xmlns:soap="schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
        <wsListeCompt> 
            <comptes> 
                <a>pen drive</a> 
                <b>jsoup</b> 
            </comptes> 
            <comptes> 
                <a>pen drive</a> 
                <b>jsoup</b> 
            </comptes> 
            <comptes> 
                <a>pen drive</a> 
                <b>jsoup</b> 
            </comptes> 
        </wsListeCompt> 
    </soap:Body> 
</soap:Envelope>
    Elements aElements = doc.select("a");
    Elements bElements = doc.select("b");


    // This 'if-else' block is optional
    if( aElements.size() != bElements.size() )
    {
        // Error handling - if required
    }
    else
    {
        // Iterate over all elements
        for( int i = 0; i < aElements.size(); i++ )
        {
            Post p = new Post();    // Create a Post

            p.setA(aElements.get(i).text());    // Set A Value
            p.setB(bElements.get(i).text());    // Set B Value

            PostList.add(p);    // Add the Post to List
        }
    }
Elements aeelements=doc.select(“a”);
元素元素=文件选择(“b”);
//此“if-else”块是可选的
如果(aElements.size()!=bElements.size())
{
//错误处理-如果需要
}
其他的
{
//迭代所有元素
对于(int i=0;i
pen drive jsoup pen drive jsoup pen drive jsoup setter getter呢。如果我说getB(),我需要得到所有的b元素,如果我只需要b中的1个元素,这仍然有效吗?我希望每个a b都在相同的索引中,这是每个comptes在setA(a)中添加a,在setB(b)中添加b。如果我理解正确,你想将xml反序列化为java对象吗
Elements
是一个列表,因此如果您只需要一个元素,请调用
aeelements.get(0)
(或另一个索引)。顺便说一句。如果要反序列化xml,请查看。