public HTMLDocument extract(HTMLDocument document, NodePath... nodePaths) {
HTMLNode root = document.getRoot();
// CharsToken tokens = document.getTokens();
HTMLNode newRoot = HTMLParser2.clone(root);
HTMLDocument newDocument = new HTMLDocument();
// CharsToken newTokens = new CharsToken(newDocument);
// newTokens.push((NodeImpl)newRoot);
for(int i = 0; i < nodePaths.length; i++) {
List<HTMLNode> htmlNodes = matchNodes(root, nodePaths[i]);
if(htmlNodes == null ) continue;
for(HTMLNode htmlNode : htmlNodes) {
if(htmlNode == null) continue;
// extractTokens(tokens, newTokens, htmlNode);
newRoot.addChild(htmlNode);
// htmlNode.setParent(newRoot);
}
}
newDocument.setRoot(newRoot);
return newDocument;
}