org.w3c.dom.Element执行getNodeValue总是返回null?

xml。。。。很常用,写个配置文件、传个平台无关的数据。。。很常见

但是为这些xml编写规范的DTD或者schema的。。。不太常见。。因为太麻烦。。。xml人人都看得懂,费那劲干嘛。。。。

以前都用dom4j之类的框架,好用。。。随便用。。。

后来用不了了,老老实实拿org.w3c.dom来写。。。

比如这个xml:
<root>
  <name>admin</name>
</root>

太简单了:
Document doc=........;
Element root=doc.getDocumentElement();
Element nameNode=(Element)root.getElementsByTagName(name).item(0);
String name=nameNode.getNodeValue();

准备收工。。。。什么,得到的是null?你没看错吧?

翻了文档,w3c对于xml的节点类型有严格规定,我们又没有自己编写DTD或者schema来指定数据类型的习惯,所以w3c就按自己的理解来了。所以。。name节点有两个身份,第一它是Node,没有值,第二它是Node的children,有一个text的值==admin。所以你要这样:

String name=nameNode. getFirstChild().getNodeValue();

搞定。w3c也是非主流??请问。。。。介系一种行为艺术咩?

你可能感兴趣的:(xml,框架)