Filter NOT, NOT (pred OR pred) does not work
Brought to you by:
derrickoswald
private NodeFilter filter = null; filter = new NotFilter(new OrFilter( new TagNameFilter[] { new TagNameFilter("DOCTYPE"), new TagNameFilter("!DOCTYPE"), new TagNameFilter("script"), } )); NodeList nl = parser.parse(filter).extractAllNodesThatMatch(filter); nl.visitAllNodesWith(new NodeVisitor() { @Override public void beginParsing() { } @Override public void finishedParsing() { } @Override public void visitTag(Tag tag) { TagDescriptor tagDescriptor = getDescriptor(tag); if (!tag.isEndTag() && !tag.isEmptyXmlTag() && tag.getEndTag() != null) { System.out.printf("<%s>%n", tag.getTagName()); } @Override public void visitEndTag(Tag tag) { TagDescriptor tagDescriptor = getDescriptor(tag); System.out.printf("</%s>%n", tag.getTagName()); } });
/
After this lines being run, I see all tags on stdout. None was filtered. It looks like parse(filter) and extractAllNodesThatMatch(filter) doesn't work at all. No filter applied/