为什么我获得的节点个数总是比实际的多1
程序代码片如下
xml
<?xml version='1.0' encoding='UTF-8'>
<UserInfo>
<IdentityCard>13530285296</IdentityCard>
<ProcID>20512345678</ProcID>
<truth>22222</truth> 
</UserInfo>Element root = doc.getDocumentElement(); 
NodeList users = root.getElementsByTagName("UserInfo");
int tt = root.getChildNodes().getLength();//获取UserInfo节点下的个数
System.out.println("节点个数:"+tt);

解决方案 »

  1.   

    因为你最后一句代码取的是根节点下的节点数
    你的原意应是这样吧
    Element root = doc.getDocumentElement();  
    NodeList users = root.getElementsByTagName("UserInfo"); 
    int tt = users.getChildNodes().getLength();//获取UserInfo节点下的个数 
    System.out.println("节点个数:"+tt);  
      

  2.   

    可是我改成
    Element root = doc.getDocumentElement();   
    NodeList users = root.getElementsByTagName("UserInfo");  
    int tt = users.getLength();//获取UserInfo节点下的个数  
    System.out.println("节点个数:"+tt); 输出结果却是0,这是为什么??
     
      

  3.   

    <?xml version='1.0' encoding='UTF-8'> 
    <UserInfos>  <UserInfo> 
      <IdentityCard>13530285296 </IdentityCard> 
      <ProcID>20512345678 </ProcID> 
      <truth>22222 </truth>  
      </UserInfo> 
    </UserInfos> 如果是这样的结点你的程序就是对了吧
      

  4.   

    这一句int tt = users.getLength();//获取UserInfo节点下的个数
    改成:
    int tt = users.getChildNodes().getLength();
    再试试!
      

  5.   

    getChildNodes()是有可能会包含文本段的,并不单纯计算节点数,所以并不一定是你想像中的个数
      

  6.   

    users是NodeList型的,没有getChildNodes()方法