如何使用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>
答案 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()