org.jsoup.select.Collector Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of html2pdf Show documentation
Show all versions of html2pdf Show documentation
pdfHTML is an iText add-on that lets you to parse (X)HTML snippets and the associated CSS and converts
them to PDF.
package org.jsoup.select;
import org.jsoup.nodes.Element;
import org.jsoup.nodes.Node;
/**
* Collects a list of elements that match the supplied criteria.
*
* @author Jonathan Hedley
*/
public class Collector {
private Collector() {
}
/**
Build a list of elements, by visiting root and every descendant of root, and testing it against the evaluator.
@param eval Evaluator to test elements against
@param root root of tree to descend
@return list of matches; empty if none
*/
public static Elements collect (Evaluator eval, Element root) {
Elements elements = new Elements();
new NodeTraversor(new Accumulator(root, elements, eval)).traverse(root);
return elements;
}
private static class Accumulator implements NodeVisitor {
private final Element root;
private final Elements elements;
private final Evaluator eval;
Accumulator(Element root, Elements elements, Evaluator eval) {
this.root = root;
this.elements = elements;
this.eval = eval;
}
public void head(Node node, int depth) {
if (node instanceof Element) {
Element el = (Element) node;
if (eval.matches(root, el))
elements.add(el);
}
}
public void tail(Node node, int depth) {
// void
}
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy