我使用Jsoup库构建了一个解析算法。有没有办法用Java打印DOM树?
例如:
<HTML/>
<HEAD/>
<TITLE/>
<BODY/>
<H1/>
<H2/>
<P/>
答案 0 :(得分:1)
这是解析和打印的代码。
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletResponse;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
public class Main {
public static void printTree(Node doc) {
if (doc == null) {
System.out.println("Nothing to print!!");
return;
}
try {
System.out.println(doc.getNodeName() + " " + doc.getNodeValue());
NamedNodeMap cl = doc.getAttributes();
for (int i = 0; i < cl.getLength(); i++) {
Node node = cl.item(i);
/*
System.out.println("\t" + node.getNodeName() + " ->" + node.getNodeValue());
//You don't need value
*/
System.out.println("\t" + node.getNodeName());
}
NodeList nl = doc.getChildNodes();
for (int i = 0; i < nl.getLength(); i++) {
Node node = nl.item(i);
printTree(node);
}
} catch (Throwable e) {
System.out.println("Cannot print!! " + e.getMessage());
}
}
}
答案 1 :(得分:0)
感谢您的回答,但我决定从HTML文件中删除所有纯文本并将其转换为XML。