Here you can find the source of getElementQName(final Element el)
public static QName getElementQName(final Element el)
//package com.java2s; //License from project: Apache License import javax.xml.namespace.QName; import org.w3c.dom.Element; import org.w3c.dom.Node; public class Main { public static QName getElementQName(final Element el) { final String qualifiedName = el.getNodeName(); return resolveQName(el, qualifiedName); }// w w w.ja v a 2 s.c om public static QName resolveQName(final Element el, final String qualifiedName) { QName qname; String prefix = ""; String namespaceURI = ""; String localPart = qualifiedName; final int colIndex = qualifiedName.indexOf(":"); if (colIndex > 0) { prefix = qualifiedName.substring(0, colIndex); localPart = qualifiedName.substring(colIndex + 1); if ("xmlns".equals(prefix)) { namespaceURI = "URI:XML_PREDEFINED_NAMESPACE"; } else { Element nsElement = el; while (namespaceURI.equals("") && nsElement != null) { namespaceURI = nsElement.getAttribute("xmlns:" + prefix); if (namespaceURI.equals("")) { nsElement = getParentElement(nsElement); } } } if (namespaceURI.equals("")) { throw new IllegalArgumentException("Cannot find namespace uri for: " + qualifiedName); } } qname = new QName(namespaceURI, localPart, prefix); return qname; } public static Element getParentElement(final Node node) { final Node parent = node.getParentNode(); return parent instanceof Element ? (Element) parent : null; } }