Comment gérer les balises de fermeture (ex: </h1>
) avec la bibliothèque d'analyseurs HTML HTML?Analyseur Html Java et étiquettes de fermeture
Par exemple, si je donne les résultats suivants:
public class MyFilter implements NodeFilter {
public boolean accept(Node node) {
if (node instanceof TagNode) {
TagNode theNode = (TagNode) node;
if (theNode.getRawTagName().equals("h1")) {
return true;
} else {
return false;
}
}
return false;
}
}
public class MyParser {
public final String parseString(String input) {
Parser parser = new Parser();
MyFilter theFilter = new MyFilter();
parser.setInputHTML("<h1>Welcome, User</h1>");
NodeList theList = parser.parse(theFilter);
return theList.toHtml();
}
}
Quand je lance mon analyseur, je reçois la sortie suivante retour:
<h1>Welcome, User</h1>Welcome, User</h1>
Le NodeList contient une liste de taille 3 avec la entités suivantes:
(tagNode) <h1>
(textNode) Welcome, User
(tagNode) </h1>
Je voudrais que la sortie soit "<h1>Welcome, User</h1>
". Est-ce que quelqu'un voit ce qui ne va pas dans mon exemple d'analyseur? Je pense que
vous devez compter sur isEndTag() API dans ce cas: