有這樣一段代碼:
???????public static Node findNode(Node node, String name)
?{
?????????NodeList list = node.getChildNodes();
?????????int size = list.getLength();
?????????for (int i = 0; i < size; i++)
?????????{
?????????????Node node = list.item(i);
?????????????if(node.getNodeType()!=Node.ELEMENT_NODE)?
???????????????????continue;?
?????????????if (node.getNodeName().equals(name))
??????????????????return node;??
????????}
?}
注意其中標(biāo)紅的這句代碼,為什么要加這個(gè)判斷?我在調(diào)試過(guò)程中發(fā)現(xiàn)這段代碼確實(shí)有用,但為什么有時(shí)一樣的node結(jié)構(gòu),為什么有時(shí)能檢測(cè)到非ELEMENT_NODE type 的節(jié)點(diǎn),有時(shí)卻是直接跳過(guò)呢?
??????詢問(wèn)一些同事說(shuō),在xml結(jié)構(gòu)中如果存在非法的空格,xml解析器也會(huì)把它解析成一個(gè)node,但nodetype不是element而已,是這樣嗎,是不是還有其他的原因?
???????public static Node findNode(Node node, String name)
?{
?????????NodeList list = node.getChildNodes();
?????????int size = list.getLength();
?????????for (int i = 0; i < size; i++)
?????????{
?????????????Node node = list.item(i);
?????????????if(node.getNodeType()!=Node.ELEMENT_NODE)?
???????????????????continue;?
?????????????if (node.getNodeName().equals(name))
??????????????????return node;??
????????}
?}
注意其中標(biāo)紅的這句代碼,為什么要加這個(gè)判斷?我在調(diào)試過(guò)程中發(fā)現(xiàn)這段代碼確實(shí)有用,但為什么有時(shí)一樣的node結(jié)構(gòu),為什么有時(shí)能檢測(cè)到非ELEMENT_NODE type 的節(jié)點(diǎn),有時(shí)卻是直接跳過(guò)呢?
??????詢問(wèn)一些同事說(shuō),在xml結(jié)構(gòu)中如果存在非法的空格,xml解析器也會(huì)把它解析成一個(gè)node,但nodetype不是element而已,是這樣嗎,是不是還有其他的原因?