Here you can find the source of getQNameForNode(Node node)
Parameter | Description |
---|---|
node | the node |
public static QName getQNameForNode(Node node)
//package com.java2s; /*//from w w w. j a v a 2 s. co m * Copyright 2005-2010 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import javax.xml.namespace.QName; import org.w3c.dom.Node; public class Main { /** Indicates whether {@link QName} has a prefix. The first release of the class did not have this. */ private static boolean qNameHasPrefix; /** * Returns the qualified name of the given DOM Node. * * @param node the node * @return the qualified name of the node */ public static QName getQNameForNode(Node node) { if (node.getNamespaceURI() != null && node.getPrefix() != null && node.getLocalName() != null) { return createQName(node.getNamespaceURI(), node.getLocalName(), node.getPrefix()); } else if (node.getNamespaceURI() != null && node.getLocalName() != null) { return new QName(node.getNamespaceURI(), node.getLocalName()); } else if (node.getLocalName() != null) { return new QName(node.getLocalName()); } else { // as a last resort, use the node name return new QName(node.getNodeName()); } } /** * Returns the prefix of the given <code>QName</code>. Returns the prefix if available, i.e. if the * <code>QName.getPrefix()</code> method can be found. If this method is not available (as is the case on older * implementations of JAX-RPC), an empty string is returned. * * @param qName the <code>QName</code> to return the prefix from * @return the prefix, if available, or an empty string * @see javax.xml.namespace.QName#getPrefix() */ public static String getPrefix(QName qName) { return qNameHasPrefix ? qName.getPrefix() : ""; } /** * Creates a new <code>QName</code> with the given parameters. Sets the prefix if possible, i.e. if the * <code>QName(String, String, String)</code> constructor can be found. If this constructor is not available (as is * the case on older implementations of JAX-RPC), the prefix is ignored. * * @param namespaceUri namespace URI of the <code>QName</code> * @param localPart local part of the <code>QName</code> * @param prefix prefix of the <code>QName</code>. May be ignored. * @return the created <code>QName</code> * @see QName#QName(String,String,String) */ public static QName createQName(String namespaceUri, String localPart, String prefix) { if (qNameHasPrefix) { return new QName(namespaceUri, localPart, prefix); } else { return new QName(namespaceUri, localPart); } } }