Kai Sternad..
7
对的,这是可能的.以下是解决此问题的一种方法:
查找所有评论节点
对于每个注释,提取数据属性
在当前注释节点之后插入包含数据的新节点
删除注释节点
看看这段代码:
public class UncommentComments {
public static void main(String... args) {
String htmlIn = "
"+ ""
+ "
+ ""
+ "";
Document doc = Jsoup.parse(htmlIn);
List comments = findAllComments(doc);
for (Comment comment : comments) {
String data = comment.getData();
comment.after(data);
comment.remove();
}
System.out.println(doc.toString());
}
public static List findAllComments(Document doc) {
List comments = new ArrayList<>();
for (Element element : doc.getAllElements()) {
for (Node n : element.childNodes()) {
if (n.nodeName().equals("#comment")){
comments.add((Comment)n);
}
}
}
return Collections.unmodifiableList(comments);
}
}
给出这个HTML文档:
将导致此输出: