以文本方式查看主题

-  W3CHINA.ORG讨论区 - 语义网·描述逻辑·本体·RDF·OWL  (http://bbs.xml.org.cn/index.asp)
--  『 DOM/SAX/XPath 』  (http://bbs.xml.org.cn/list.asp?boardid=11)
----  获取XML子节点名称的问题  (http://bbs.xml.org.cn/dispbbs.asp?boardid=11&rootid=&id=73692)


--  作者:lansemuou
--  发布时间:3/31/2009 8:13:00 AM

--  获取XML子节点名称的问题
我的xml文件内容wpk.xml是:
<?xml version="1.0" encoding="gb2312"?>
<wpk>
<a></a>
</wpk>
我的程序代码是:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();

document = db.parse(new File("e:/wpk.xml"));

Element element = document.getDocumentElement();
String elementName= element.getNodeName();
System.out.println(elementName);

NodeList nodeList = element.getChildNodes();
int nodeListSize = nodeList.getLength();
System.out.println(nodeListSize);
String ll = nodeList.toString();
System.out.println(ll);
Node node1 = nodeList.item(0);
System.out.println(node1);

但是,问题1:第二个print内容为3,为什么不是1呢?根节点wpk只是含有一个子节点a啊?问题2:第三个print的显示内容是[wpk: null],为什么不是子节点名称a呢?问题3:第四个print的显示内容是[#text:
],这又是为什么呢?
万分感谢!


--  作者:Qr
--  发布时间:3/31/2009 9:51:00 AM

--  
1)<wpk>
这里有个TEXT节点
<a></a>这是一个node节点
这里也有个TEXT节点
</wpk>
所以问题1的结果是3没错,除非设定过滤条件,排除文本节点,结果才是1。

如果是XML结构是:
<wpk><a></a></wpk>
那么就不存在上面两个TEXT节点了,输出结果就是1了。

2)偶不熟JAVA,不知道toString()的结果
3)nodeList.item(0)恰好是第一个TEXT节点,所以问题3的结果无可厚非



--  作者:lansemuou
--  发布时间:3/31/2009 10:26:00 PM

--  
十分感谢!心存感恩的谢谢你!
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
46.875ms