Java 从HTML获取内部标记
我是JSoup的新手,所以能帮上忙就好了。在这里,我们可以了解到下面的代码将内部标记作为字符串:Java 从HTML获取内部标记,java,html,jsoup,Java,Html,Jsoup,我是JSoup的新手,所以能帮上忙就好了。在这里,我们可以了解到下面的代码将内部标记作为字符串: 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 t
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>"
String html=“链接。”;
Document doc=Jsoup.parse(html);
Element link=doc.select(“a”).first();
字符串text=doc.body().text();//“示例链接”
字符串linkHref=link.attr(“href”);//"http://example.com/"
字符串linkText=link.text();//“示例”
字符串linkOuterH=link.outerHtml();
// ""
字符串linkInnerH=link.html();/“示例”
但是如果HTML字符串非常长,因此包含很多标记,该怎么办?在这种情况下有限制吗?我如何制作一个包含所有“a”内部标记的字符串数组或arraylist
?
如何生成包含所有内部元素的字符串数组或arraylist
“a”的标签
您可以从文档返回元素
。这里的元素
是一个包含所有
标记的数组
Document doc = Jsoup.parse(html);
Elements allAnchorTags = doc.select("a");
System.out.println(allAnchorTags); // It will print all tag string.
Jsoup类似于DOM解析器。它将整个html转换为一个树结构。因此,它可以解析的大小取决于您配置的java堆大小 至于获得标签有几种方法。最简单的方法是
document.select()
method。就像马苏德的答案一样
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()]);
documentdocument=Jsoup.parser(html);
列表标记=新的ArrayList();
对于(元素e:document.select(“a”)){
tags.add(e.tagName());
}
System.out.println(“标签=”+标签);
//如果您希望它作为数组
String[]tagsArray=tags.toArray(新字符串[tags.size()]);
您可以参考此答案了解更多选项,然后如何将元素转换为数组或字符串列表?假设字符串[]的每个值都是每个“a”标记的内容。由于e.tagName()检索始终为“a”的标记的名称,我将其更改为e.html()以获取内部标记,现在它似乎正在工作。谢谢!