日期:2014-05-18  浏览次数:20743 次

DOM解析xml文件时root.getChildNodes()方法疑问。。。。
请高手指点。。。。
我描述下我的问题:xml文件如下:
<?xml   version= "1.0 "   encoding= "gb2312 "?>
<pkudoc   pkusoft= "urn=schemas-pkusoft-com:fz "   version= "2.0 ">
<datainfo>
<table   name= "persion "   operation= "0 ">
      <id   state= "0 "> 00003 </id>
      <name   state= "0 "> 刘军 </name>
</table>
<table   name= "persion "   operation= "1 ">
      <id   state= "5 "> 00001 </id>
      <name   state= "0 "> 张惠 </name>
</table>
</datainfo>    
</pkudoc>

java程序如下:很简单就写了个类测试一下,不全贴了,部分代码如下:
......
Element   root   =   doc.getDocumentElement();
NodeList   datainfo   =   root.getChildNodes();   //问题在这里
我把System.out.println( "length--> "+datainfo.getLength());打出来,为什么显示length=3啊??????????顺便问一下:Element和Node之间可以强制转换吗?我好象试了一下,运行的时候报错误了!

------解决方案--------------------
我把System.out.println( "length--> "+datainfo.getLength());打出来,为什么显示length=3啊?

这个问题是这样的:你所期望的是不是length=2,对不对?其实三是正确的,因为xml文件是语法严格的文件,它不会忽略空白,所以,在 <datainfo> 后面的空白也是它的一个子结点,一个空白结点,两个table子结点,是3正好。