0

我使用 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;
}

} 

通过使用数组列表

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

如何使用 jsoup 将 ab 的值存储在不同的索引下。我提取单个标签

Document doc = Jsoup.parse(soap_xml_content);

Element element1 = doc.select("a");
Element element2 = doc.select("b");

String value_a = element1.text();
String value_b = element2.text();

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>
4

1 回答 1

0

此代码不会编译,因为select()将返回一个Elements对象,而不是Element.

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 元素做同样的事情)


例子:

    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
        }
    }
于 2013-04-03T18:30:49.330 回答