为什么getNamespaceURI()总是返回null?printNSInfo方法有什么问题。
当我在Eclipse中调试时,
public static void main(String[] args) {
Document input = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(args[0]);
Element root = input.getDocumentElement();
printNSInfo(root);
}
private static void printNSInfo(Node node) {
if (node.getNodeType() == Node.ELEMENT_NODE) {
if (node.getNamespaceURI() != null) {
System.out.println("Element Name:" + node.getNodeName());
System.out.println("Local Name:" + node.getLocalName());
System.out.println("Namespace Prefix:" + node.getPrefix());
System.out.println("Namespace Uri:" + node.getNamespaceURI());
System.out.println("---------------");
}
if (node.hasAttributes()) {
NamedNodeMap map = node.getAttributes();
int len = map.getLength();
for (int i = 0; i < len; i++) {
Node attr = map.item(i);
if (attr.getNamespaceURI() != null) {
printNSInfo(attr);
}
}
}
Node child = node.getFirstChild();
System.out.println(child);
while (child != null) {
printNSInfo(child);
child = child.getNextSibling();
}
} else if (node.getNodeType() == Node.ATTRIBUTE_NODE) {
System.out.println("Attribute Name:" + node.getNodeName());
System.out.println("Local Name:" + node.getLocalName());
System.out.println("Namespace Prefix:" + node.getPrefix());
System.out.println("Namespace Uri:" + node.getNamespaceURI());
System.out.println("---------------");
}
}
输入的xml文件为:
<a:NormalExample xmlns:a="http://sonormal.org/" xmlns:b="http://stillnormal.org/">
<a:AnElement b:anAttribute="text"> </a:AnElement>
</a:NormalExample>
当我在Eclipse中调试时,
node.getNamespaceURI()
总是返回null
,我做错了什么?