Here you can find the source of getAttributes(final Element el)
public static Map<QName, String> getAttributes(final Element el)
//package com.java2s; //License from project: Apache License import java.util.HashMap; import java.util.Map; import javax.xml.namespace.QName; import org.w3c.dom.Attr; import org.w3c.dom.Element; import org.w3c.dom.NamedNodeMap; import org.w3c.dom.Node; public class Main { public static Map<QName, String> getAttributes(final Element el) { final Map<QName, String> attmap = new HashMap<QName, String>(); final NamedNodeMap attribs = el.getAttributes(); for (int i = 0; i < attribs.getLength(); i++) { final Attr attr = (Attr) attribs.item(i); final String name = attr.getName(); final QName qname = resolveQName(el, name); final String value = attr.getNodeValue(); attmap.put(qname, value);/*from ww w. j a va2 s. c om*/ } return attmap; } 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; } }