`

getChildNodes理解

阅读更多
view plaincopy to clipboardprint?
代码如下:  
 
NodeList lists = root.getChildNodes();  
System.out.println(lists.getLength());  
 
 
xml文件是这样的:  
 
<root>  
  <list><key>aaa</key><key>bbb</key></list>  
  <list><key>ssssss</key></list>  
</root>  
 
 
结果发现lists的长度居然是5,怎么也不明白,后来发现如果把xml文件改一下,把tab、回车都去掉,长度就成了2了。 
代码如下:

NodeList lists = root.getChildNodes();
System.out.println(lists.getLength());


xml文件是这样的:

<root>
  <list><key>aaa</key><key>bbb</key></list>
  <list><key>ssssss</key></list>
</root>


结果发现lists的长度居然是5,怎么也不明白,后来发现如果把xml文件改一下,把tab、回车都去掉,长度就成了2了。


解析器认为<root>和<list>,</list>和<list>,<list>和</root>之间的空白部分也是节点,所以答案是5

关于这个,反正就是好像xml里面把空格、tab、回车都有可能当成node。所以api里面专门有个方法:ignorableWhitespace 是用来处理这个问题的



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luweifeng1983/archive/2009/03/27/4028327.aspx
分享到:
评论

相关推荐

    Java递归算法构造JSON树形结构

    这种方法可以将复杂的树形结构数据转换成易于理解和处理的 JSON 格式。 在 Java 中,使用递归算法可以将树形结构数据处理成 JSON 格式。在这个示例代码中,我们使用了 json-lib.jar 包将 List 序列化成 JSON。首先...

    将xml解析成树状结构显示

    树形结构可以通过`getElementsByTagName()`, `getChildNodes()`等方法进行遍历和操作。 `ButtonTest`类可能包含了一个或多个按钮,当用户点击按钮时,触发解析XML并显示树状结构的事件。这通常涉及到GUI(图形用户...

    XML基础教程课后习题解答.pdf

    - 在Java中,可以使用`DocumentBuilderFactory`和`DocumentBuilder`来解析XML文件,获取`Document`对象,然后通过`getElementByTagName()`、`getChildNodes()`等方法进行操作。 7. **节点类型**: - 在DOM中,...

    matlab读xml文档

    接着,通过遍历`getChildNodes`获取所有子节点,根据`getNodeType`判断节点类型,如果是元素节点(ELEMENT),则进行元素相关的处理;如果是文本节点(TEXT),则进行文本内容的处理。 在实际应用中,处理XML元素...

    安卓Android源码——xml-dom201311060201.zip

    NodeList nodeList = rootElement.getChildNodes(); for (int i = 0; i (); i++) { Node node = nodeList.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { // 处理元素节点... } } ``` 然而,需要...

    应用源码之xml-dom201311060201.zip

    - 遍历节点:通过`getElementsByTagName()`, `getChildNodes()`, `getNextSibling()`等方法遍历并访问XML结构中的各个元素、属性和文本节点。 - 修改节点:使用`createElement()`, `setAttribute()`, `removeChild...

    坏孩子无限级树型菜单_aspx开发教程.rar

    在ASP.NET中,你可以创建一个辅助方法,如`GetChildNodes()`,该方法接收当前节点的ID,返回其所有子节点。 在ASP.NET Web Forms中,我们可以使用控件如TreeView来呈现树形结构。TreeView控件允许我们动态加载节点...

    c#模板导出word文档

    foreach (Table table in doc.GetChildNodes(NodeType.Table, true)) { foreach (Row row in table.Rows) { foreach (Cell cell in row.Cells) { // 在这里处理单元格内容 } } } ``` 最后,导出修改后的文档...

    自己封装的XML类,XMLDocoument,XMLNode,XMLAttr等类操作

    例如,`GetChildNodes`可以返回一个XmlNode集合,表示当前节点的所有子节点;`GetAttributeValue`用于获取节点的特定属性值。 XmlAttribute类是XML元素节点的属性,用于存储与元素相关联的元数据。在自封装的...

    Android应用源码之xml-dom201311060201.zip

    可以调用`getTextContent()`获取元素的文本内容,`getChildNodes()`获取子节点,`getAttribute()`获取属性值。 6. **动态UI构建**:在Android应用中,DOM解析常用于动态构建UI,比如从XML配置文件加载布局或根据XML...

    DOM解析XML应用实例(入门经典案例)

    3. 遍历元素:使用`getElementsByTagName()`或`getElementById()`等方法获取指定元素,通过`getChildNodes()`遍历子元素,`getAttribute()`获取属性值。 4. 修改元素:`createElement()`, `appendChild()`, `...

    xml.dom解析实例(java)

    XML(eXtensible Markup Language)是一种用于标记数据的语言,广泛应用在数据交换、配置文件以及文档存储等领域。DOM(Document Object ...通过理解和实践DOM解析,开发者能够有效地在Java应用中集成XML数据处理。

    xml读写操作

    3. **解析XML元素**:类可能提供了遍历和访问XML元素的方法,如`GetRootNode`获取根节点,`GetChildNodes`获取子节点,`GetAttributeValue`获取属性值等。 4. **修改XML元素**:可能有方法允许修改元素的值、属性或...

    JDK自带方法解析xml特定格式的字符串

    NodeList nodeList = rootElement.getChildNodes(); for (int i = 0; i (); i++) { Node currentNode = nodeList.item(i); // 处理当前节点... } ``` 在压缩包中,有两个文件:`test1.java`和`SDSWorkOrder.java`...

    android dom方式解析xml

    首先,我们需要理解DOM解析的基本原理。DOM解析器会将整个XML文件加载到内存中,形成一个节点树。这棵树的根节点代表整个XML文档,而其他节点则表示文档中的元素、属性、文本等内容。这种解析方式的优点是能够快速...

    xml文件dom操作详解

    总之,理解XML文件的DOM操作对于处理结构化数据至关重要。通过DOM,我们可以方便地遍历、检索和修改XML文档,为各种应用程序提供数据支持。随着技术的发展,还有许多高级工具和库可以帮助简化XML操作,但掌握DOM的...

    c# treeview 获取子节点

    在C#编程中,`TreeView`控件是一个常用的可视...理解如何创建、遍历和更新`TreeNode`对于开发涉及树形结构的应用至关重要。如果你遇到问题,记得检查节点状态、事件处理和自定义逻辑,确保正确无误地获取和操作子节点。

    xml递归解析,很不错的例子,分享分享

    NodeList childNodes = element.getChildNodes(); for (int i = 0; i (); i++) { Node node = childNodes.item(i); if (node.getNodeType() == Node.ELEMENT_NODE) { parseElement((Element) node); } } } ``...

    xml 解析例子

    NodeList childNodes = eElement.getChildNodes(); for (int j = 0; j (); j++) { Node childNode = childNodes.item(j); if (childNode.getNodeType() == Node.TEXT_NODE) { System.out.println("Child Node :...

Global site tag (gtag.js) - Google Analytics