Java XML Node Find findNodeIndex(Node node)

Here you can find the source of findNodeIndex(Node node)

Description

find Node Index

License

Open Source License

Declaration

private static int findNodeIndex(Node node) 

Method Source Code

//package com.java2s;
/*/*w  ww . j  a v  a2 s.  com*/
 *  soapUI, copyright (C) 2004-2010 eviware.com 
 *
 *  soapUI is free software; you can redistribute it and/or modify it under the 
 *  terms of version 2.1 of the GNU Lesser General Public License as published by 
 *  the Free Software Foundation.
 *
 *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
 *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 *  See the GNU Lesser General Public License for more details at gnu.org.
 */

import org.w3c.dom.Node;

public class Main {
    private static int findNodeIndex(Node node) {
        String nm = node.getLocalName();
        String ns = node.getNamespaceURI();
        short nt = node.getNodeType();

        Node parentNode = node.getParentNode();
        if (parentNode.getNodeType() != Node.ELEMENT_NODE)
            return 1;

        Node child = parentNode.getFirstChild();

        int ix = 0;
        while (child != null) {
            if (child == node)
                return ix + 1;

            if (child.getNodeType() == nt && nm.equals(child.getLocalName())
                    && ((ns == null && child.getNamespaceURI() == null)
                            || (ns != null && ns.equals(child.getNamespaceURI()))))
                ix++;

            child = child.getNextSibling();
        }

        throw new RuntimeException("Child node not found in parent!?");
    }
}

Related

  1. findNode(Node rootNode, String nodeName)
  2. findNodeByAttribute(Document document, String tagName, String attributeName, String attributeValue)
  3. findNodeByName(Document doc, String pathExpression)
  4. findNodeByTagName(Document document, String tagName)
  5. findNodeByXpath(org.w3c.dom.Document doc, String xpathEx)
  6. findNodeIndex(Node node)
  7. findNodeLong(Node node)
  8. findNodesByTagName(Document document, String tagName)
  9. findNodesNamed(Node node, String lookForName, Collection ret)