任何jsoup大师都能告诉我一些过滤html到text / string的建议吗?我试过调用Document的text()。但是所有标签/元素都将被过滤掉。我的目标是过滤一些指定的标签。
即:我的html文字如下:
<div>hello<p>world</div>,<table><tr><td>xxx</td></tr>
获得结果:
<div>hello<p>world</div>,xxx
已过滤标签。
答案 0 :(得分:0)
我现在无法对此进行测试,但我认为您希望编写一个递归函数,该函数遍历树并根据条件打印每个节点。以下是它可能会是什么样子的示例,但我希望您必须更精确地修改它以满足您的需求。
Document doc = JSoup.parse(page_text);
recursive_print(doc.head());
recursive_print(doc.body());
...
private static Set<String> ignore = new HashSet<String>(){{
add("table");
...
}};
public static void recursive_print(Element el){
if(!ignore.contains(el.className()))
System.out.println(el.html());
for(Element child : el.children())
recursive_print(child);
}
答案 1 :(得分:0)
您可以使用Whitelist whiteList = new Whitelist();
来实现此目标。例如:
whiteList.addTags("div", "p", "td");
HtmlElement element= WebBrowser.Document.GetElementById("MainRadGrid_ClientState");
这意味着将删除所有其他标签。