Java XML Node Namespace isSameNamespace(Node node, String namespace)

Here you can find the source of isSameNamespace(Node node, String namespace)

Description

is Same Namespace

License

Open Source License

Declaration

public static boolean isSameNamespace(Node node, String namespace) 

Method Source Code

//package com.java2s;
/*/*from  ww  w .  j  ava  2  s . c om*/
 * Copyright (c) 1998-2013 Caucho Technology -- all rights reserved
 *
 * This file is part of Resin(R) Open Source
 *
 * Each copy or derived work must preserve the copyright notice and this
 * notice unmodified.
 *
 * Resin Open Source is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * Resin Open Source 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, or any warranty
 * of NON-INFRINGEMENT.  See the GNU General Public License for more
 * details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Resin Open Source; if not, write to the
 *
 *   Free Software Foundation, Inc.
 *   59 Temple Place, Suite 330
 *   Boston, MA 02111-1307  USA
 *
 * @author Nam Nguyen
 */

import org.w3c.dom.Attr;

import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;

public class Main {
    public static boolean isSameNamespace(Node node, String namespace) {
        String prefix = getPrefix(node.getNodeName());

        return hasNamespace(node, prefix, namespace);
    }

    public static String getPrefix(String name) {
        int i = name.indexOf(':');

        if (i < 0) {
            return null;
        }

        String prefix = name.substring(0, i);

        return prefix;
    }

    public static boolean hasNamespace(Node node, String prefix,
            String namespace) {
        if (namespace == null) {
            return true;
        }

        String attrName;

        if (prefix != null && prefix.length() > 0) {
            attrName = "xmlns:" + prefix;
        } else {
            attrName = "xmlns";
        }

        while (node != null) {
            NamedNodeMap attrMap = node.getAttributes();

            if (attrMap == null) {
                break;
            }

            Attr attr = (Attr) attrMap.getNamedItem(attrName);

            if (attr != null) {
                return attr.getNodeValue().equals(namespace);
            }

            node = node.getParentNode();
        }

        return false;
    }
}

Related

  1. isInNamespace(Node node, String namespace)
  2. isNamespace(Node node)
  3. isNamespaceElement(Node node, String namespace)
  4. isNamespaceElement(Node node, String namespace)
  5. isNonDefaultNamespace(Node node)
  6. match(final Node node, final String namespace, final String localname)
  7. matches(final Node node, final boolean useNamespaces, final String namespaceURI, final String localName)
  8. matches(Node n, String namespace, String tagName)
  9. parseStaticInterface(String interfaceName, Node module, String nameSpace, PrintWriter out)