明月松间照 清泉石上流


                                        ——— 兵临城下   猫科动物
posts - 70, comments - 137, trackbacks - 0, articles - 23
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

一个xml解析的疑惑

Posted on 2006-11-24 12:41 兵临城下 阅读(400) 评论(5)  编辑  收藏 所属分类: J2SE
有这样一段代码:
       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;  
        }
 }

注意其中标红的这句代码,为什么要加这个判断?我在调试过程中发现这段代码确实有用,但为什么有时一样的node结构,为什么有时能检测到非ELEMENT_NODE type 的节点,有时却是直接跳过呢?
      询问一些同事说,在xml结构中如果存在非法的空格,xml解析器也会把它解析成一个node,但nodetype不是element而已,是这样吗,是不是还有其他的原因?

评论

# re: 一个xml解析的疑惑  回复  更多评论   

2006-11-25 13:58 by 孤枕
from dom4j api doc:
public short getNodeType()Returns the code according to the type of node. This makes processing nodes polymorphically much easier as the switch statement can be used instead of multiple if (instanceof) statements.

Returns:
a W3C DOM complient code for the node type such as ELEMENT_NODE or ATTRIBUTE_NODE

# re: 一个xml解析的疑惑  回复  更多评论   

2006-11-25 17:05 by 兵临城下
还是不太懂!
??

# re: 一个xml解析的疑惑  回复  更多评论   

2006-11-27 12:52 by 01musician
不要把xml完全数据格式,也可当成文本。比如<p>text<b>book</b>name</p>,当node取p时,那个代码就有用了。

# re: 一个xml解析的疑惑  回复  更多评论   

2006-11-28 00:07 by Zou Ang
有可能返回一个Element节点或者属性节点吧

# re: 一个xml解析的疑惑  回复  更多评论   

2006-11-28 09:20 by 兵临城下
<p>text<b>book</b>name</p>
这种格式是标准的xml格式吗?如果这样,在xml解析时能通过?


不知道什么样的节点才是Element或是属性节点呢?Elment也是继承自Node的

只有注册用户登录后才能发表评论。


网站导航: