Example usage for org.w3c.dom.traversal NodeFilter FILTER_SKIP

List of usage examples for org.w3c.dom.traversal NodeFilter FILTER_SKIP

Introduction

In this page you can find the example usage for org.w3c.dom.traversal NodeFilter FILTER_SKIP.

Prototype

short FILTER_SKIP

To view the source code for org.w3c.dom.traversal NodeFilter FILTER_SKIP.

Click Source Link

Document

Skip this single node.

Usage

From source file:DomPrintUtil.java

private short eval(Node target) {
    short flag = defaultFilter.acceptNode(target);

    // If the node is skipped by whatToShow flag, a NodeFiilter will not be
    // called.//from w ww  .  ja va2s .  c om
    if (noFilter || flag == NodeFilter.FILTER_SKIP) {
        return flag;
    }
    return filter.acceptNode(target);
}

From source file:DomPrintUtil.java

private Node getVisibleNextSibling(Node target, Node root) {
    if (target == root) {
        return null;
    }/*from   w  w  w.  j a  v  a2 s  .c o m*/
    Node tmpN = target.getNextSibling();
    if (null == tmpN) {
        Node tmpP = target.getParentNode();
        if (eval(tmpP) == NodeFilter.FILTER_SKIP) {
            return getVisibleNextSibling(tmpP, root);
        }
        return null;
    }
    switch (eval(tmpN)) {
    case NodeFilter.FILTER_ACCEPT:
        return tmpN;
    case NodeFilter.FILTER_SKIP:
        Node tmpC = getVisibleFirstChild(tmpN);
        if (null != tmpC) {
            return tmpC;
        }
        // case NodeFilter.FILTER_REJECT:
    default:
        return getVisibleNextSibling(tmpN, root);
    }
}

From source file:DomPrintUtil.java

private Node getVisiblePreviousSibling(Node target, Node root) {
    if (target == root) {
        return null;
    }//from ww  w . j a va 2  s  . c  om
    Node tmpN = target.getPreviousSibling();
    if (null == tmpN) {
        Node tmpP = target.getParentNode();
        if (eval(tmpP) == NodeFilter.FILTER_SKIP) {
            return getVisiblePreviousSibling(tmpP, root);
        }
        return null;
    }
    switch (eval(tmpN)) {
    case NodeFilter.FILTER_ACCEPT:
        return tmpN;
    case NodeFilter.FILTER_SKIP:
        Node tmpC = getVisibleLastChild(tmpN);
        if (null != tmpC) {
            return tmpC;
        }
        // case NodeFilter.FILTER_REJECT:
    default:
        return getVisiblePreviousSibling(tmpN, root);
    }
}

From source file:DomPrintUtil.java

private Node getVisibleFirstChild(Node target) {
    if (!entitiyReferenceExpansion && Node.ENTITY_REFERENCE_NODE == target.getNodeType()) {
        return null;
    }/*from   www. ja  v a  2s  . c  om*/
    Node tmpN = target.getFirstChild();
    if (null == tmpN) {
        return null;
    }

    switch (eval(tmpN)) {
    case NodeFilter.FILTER_ACCEPT:
        return tmpN;
    case NodeFilter.FILTER_SKIP:
        Node tmpN2 = getVisibleFirstChild(tmpN);
        if (null != tmpN2) {
            return tmpN2;
        }
        // case NodeFilter.FILTER_REJECT:
    default:
        return getVisibleNextSibling(tmpN, target);
    }
}

From source file:DomPrintUtil.java

private Node getVisibleLastChild(Node target) {
    if (!entitiyReferenceExpansion && Node.ENTITY_REFERENCE_NODE == target.getNodeType()) {
        return null;
    }// ww w.j  av a 2s. c o  m
    Node tmpN = target.getLastChild();
    if (null == tmpN) {
        return null;
    }

    switch (eval(tmpN)) {
    case NodeFilter.FILTER_ACCEPT:
        return tmpN;
    case NodeFilter.FILTER_SKIP:
        Node tmpN2 = getVisibleLastChild(tmpN);
        if (null != tmpN2) {
            return tmpN2;
        }
        // case NodeFilter.FILTER_REJECT:
    default:
        return getVisiblePreviousSibling(tmpN, target);
    }
}

From source file:eu.semaine.util.XMLTool.java

/**
 * Create a node iterator for the current document, which will provide exactly
 * the elements below root in the given namespace whose local names are in localNames.
 * This is independent of any namespace prefixes.
 * @param doc/*from w ww  . j  a  va2  s  . c o m*/
 * @param root
 * @param namespaceURI
 * @param localNames the array of local names to be accepted.
 * @return
 */
public static NodeIterator createNodeIterator(Document doc, Node root, final String namespaceURI,
        final String... localNames) {
    NodeIterator ni = ((DocumentTraversal) doc).createNodeIterator(root, NodeFilter.SHOW_ELEMENT,
            new NodeFilter() {
                @Override
                public short acceptNode(Node n) {
                    if (!isSameNamespace(n.getNamespaceURI(), namespaceURI)) {
                        return NodeFilter.FILTER_SKIP;
                    }
                    for (String localName : localNames) {
                        if (localName.equals(n.getLocalName())) {
                            return NodeFilter.FILTER_ACCEPT;
                        }
                    }
                    return NodeFilter.FILTER_SKIP;
                }
            }, false);
    return ni;
}