我是JSoup的新手,所以帮助会很棒。在这个official tutorial中,我们可以了解到下面的代码将内部标记变为String:
String html = "<p>An <a href='http://example.com/'><b>example</b></a> link.</p>";
Document doc = Jsoup.parse(html);
Element link = doc.select("a").first();
String text = doc.body().text(); // "An example link"
String linkHref = link.attr("href"); // "http://example.com/"
String linkText = link.text(); // "example""
String linkOuterH = link.outerHtml();
// "<a href="http://example.com"><b>example</b></a>"
String linkInnerH = link.html(); // "<b>example</b>"
但是如果HTML字符串非常长并因此包含很多标签会怎样?这种情况有限制吗?我怎样才能创建一个包含&#34; a&#34;
的所有内部标签的String数组或arraylist
答案 0 :(得分:0)
我怎么能创建一个包含所有内部的String的数组或arraylist &#34; a&#34;
的标签
您可以从doc返回Elements
。此处Elements
是一个包含所有<a>
标记的数组。
Document doc = Jsoup.parse(html);
Elements allAnchorTags = doc.select("a");
System.out.println(allAnchorTags); // It will print all tag string.
答案 1 :(得分:0)
Jsoup类似于DOM解析器。它将整个html发送到树结构。所以它可以解析的大小取决于你配置的java堆大小。
至于获取标签有几种方法。最简单的方法是document.select()
方法。就像Masud的回答一样。
Document document = Jsoup.parser(html);
List<String> tags = new ArrayList<String>();
for(Element e : document.select("a")){
tags.add(e.tagName());
}
System.out.println("The tags = " + tags);
//If you want it as array
String[] tagsArray = tags.toArray(new String[tags.size()]);
您可以参考此答案以获取更多选项How to Count total Html Tags using Jsoup