首页 > java解析xml getChilidNotes的length怎么看?

java解析xml getChilidNotes的length怎么看?

<?xml version="1.0" encoding="UTF-8"?>
<books>
    <book id="12">
        <name>think in java</name>
        <price>85.5</price>
        <author>Edwrad Saverin</author>
    </book>
    <book id="15">
        <name>Spring in Action</name>
        <price>39.0</price>
        <author>Edward Saverin</author>    
    </book>
</books>
NodeList bookNodes=element.getElementsByTagName("book");
        for(int i=0;i<bookNodes.getLength();i++){
            Element bookElement=(Element)bookNodes.item(i);
            Book book=new Book();
            book.setId(Integer.parseInt(bookElement.getAttribute("id")));
            NodeList childNodes=bookElement.getChildNodes();
            System.out.println("childnodes:"+childNodes.getLength());

为什么childnodes的长度为7?


那是因为bookElement.getChildNodes()方法,会将bookElement下的文本节点也当作一个子节点,就像这样:

#text
<name>
#text
<price>
#text
<author>
#text

其中#text这个文本节点,你是肉眼看不到的,它也许是一个空格或者换行符。
如果题主不希望得到需要的节点,建议在操作节点之前,判断一下节点的类型是不是Node.TEXT_NODE

【热门文章】
【热门文章】