Ich versuche, die Knoten eines DOM mit Jsoup zu durchlaufen, und einige Knoten und seine untergeordneten Elemente zu entfernen, wenn eine Bedingung erfüllt ist. Allerdings bekomme ich dabei eine java.lang.NullPointerException
Ausnahme. Ich habe so etwas wie:Jsoup Knoten und untergeordnete Elemente entfernen, während Sie durchlaufen
File input = new File(inputPath);
Document doc = Jsoup.parse(input, "UTF-8");
doc.traverse(new NodeVisitor() {
@Override
public void head(Node node, int depth) {
switch (node.getClass().getName()){
case "org.jsoup.nodes.Element":
Element elem = (Element) node;
Map<String, String> dataset = elem.dataset();
for (String key : dataset.keySet()) {
.....
// Here is the problem
if (someCondition) node.remove()
}
break;
case "org.jsoup.nodes.TextNode":
....
break;
}
}
@Override
public void tail(Node node, int depth) {
}
});
Irgendwie macht es Sinn, dass es mich nicht Knoten entfernen, während auf sie laufen, aber was wäre der Weg, dies dann zu erreichen? Entfernen Sie einen Knoten und seine untergeordneten Elemente, während Sie das DOM durchlaufen?
Ja, das ist tatsächlich, was ich am Ende getan habe ... – houcros