如何使用JSoup按标签获取元素? - java

时间:2014-02-10 12:59:43

标签: java html xml parsing jsoup

如何使用JSoup(http://jsoup.org/)按标记获取元素?

我有以下输入并需要以下输出,但我没有收到<source>...<\source>标记内的文字:

[在:]

<html>
  <something>
    <source>foo bar bar</source>
  <something>
  <source>foo foo bar</source>
</html>

[希望出局:]

foo bar bar
foo foo bar

我试过这个:

import java.io.*;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;

public class HelloJsoup {
    public static void main(String[] args) throws IOException {

        String br = "<html><source>foo bar bar</source></html>";
        Document doc = Jsoup.parse(br);
        //System.out.println(doc);
        for (Element sentence : doc.getElementsByTag("source"))
            System.out.print(sentence);

    }
}

但输出:

<source></source>

1 个答案:

答案 0 :(得分:3)

您需要使用xmlParser(),您可以将其传递到parse()方法:

String br = "<html><source>foo bar bar</source></html>";
Document doc = Jsoup.parse(br, "", Parser.xmlParser());

for (Element sentence : doc.getElementsByTag("source"))
    System.out.println(sentence.text());

}

有关详情,请参阅文档:http://jsoup.org/apidocs/org/jsoup/parser/Parser.html#xmlParser()