当循环删除XML中的节点时应该注意删除节点后长度变化的问题。
删除节点的方法:
list = root.getElementsByTagName("LineItemDetails");
length = list.getLength();
for (int i = 0; i < length; i++) {
Node node = list.item(0);
if(node.getParentNode().getNodeName() !=null && !node.getParentNode().getNodeName().equals("AirWaybillBillOfLadingInfo")){
root.removeChild(node);
}
}
方法二:
Element root = doc.getDocumentElement();
NodeList list = root.getElementsByTagName("LineItemDetails");
int length = list.getLength();
for(int i=0;i<list.getLength();i++){
Node nodeItem = list.item(i);
NodeList listChild = nodeItem.getChildNodes();
for(int k=0;k<listChild.getLength();k++){
Node nodeChild = listChild.item(k);
if(nodeChild.getNodeType()==Node.ELEMENT_NODE){
if(nodeChild.getNodeName().equals("MasterAirWaybillNo") || nodeChild.getNodeName().equals("HouseAirWaybillNo") || nodeChild.getNodeName().equals("ConsolidationIndicator") || nodeChild.getNodeName().equals("ConsolidationItemNo")){
nodeItem.removeChild(nodeChild);
k--;
}
}
}
}
方法三:
NodeList list = root.getElementsByTagName("LineItemDetails");
int length = list.getLength();
for(int i=0;i<list.getLength();i++){
Node nodeItem = list.item(i);
NodeList listChild = nodeItem.getChildNodes();
int leng = listChild.getLength();
for(int k=0;k<leng;k++){
Node nodeChild = listChild.item(k);
if(nodeChild.getNodeType()==Node.ELEMENT_NODE){
if(nodeChild.getNodeName().equals("MasterAirWaybillNo") || nodeChild.getNodeName().equals("HouseAirWaybillNo") || nodeChild.getNodeName().equals("ConsolidationIndicator") || nodeChild.getNodeName().equals("ConsolidationItemNo")){
nodeItem.removeChild(nodeChild);
k--;
leng--;
}
}
}
}
总之需要注意删除节点后,listChild.getLength();将重新获得值。。最好采用第三种方式。删除一个节点后将循环变量和总节点数都减少一。。
分享到:
相关推荐
总的来说,解决XML节点删除后留下空节点的问题通常涉及到理解XML库的工作原理以及正确使用所提供的API。通过适当的编程技巧和选择合适的工具,可以有效地避免这一问题,保持XML文档的整洁和正确性。
在提供的实验1文件中,可能包含了一个示例XML文件和相关的C#代码,用于演示如何根据属性检索XML节点。通过分析这些代码,你可以更深入地理解这个过程,并将这些知识应用到实际项目中。对于初学者而言,理解并掌握...
在本主题“DOM遍历所有XML节点,并且重新生成XML”中,我们将深入探讨如何利用DOM API遍历XML文档的所有节点,并根据需求重新构建XML文档。 首先,让我们了解XML的基本结构。XML(eXtensible Markup Language)是一...
在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...
在处理XML文档时,有时我们需要根据需求删除特定的节点。XML是一种可扩展标记语言,用于存储和传输数据,它的结构化特性使得数据组织有序且易于处理。本文将深入讲解如何在编程环境中删除XML根节点下的特定子节点,...
在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...
### Oracle使用XMLDOM包保存XML节点数据到数据库表中的实践 #### 一、背景与需求分析 在实际项目开发过程中,经常会遇到与第三方系统交互的需求。这些第三方接口往往返回的数据格式为XML。为了方便后续处理及存储...
4. **操作XML节点**:DOM允许我们添加、删除、修改XML文档的任何部分。例如,添加新元素: ```javascript var newElement = xmlDoc.createElement("newElement"); newElement.textContent = "新元素的文本"; ...
XML DOM是一种在编程中处理XML文档的标准接口,它允许程序员和脚本动态地访问、修改、添加和删除XML文档的结构、内容和样式。DOM将XML文档视为一棵由节点构成的树,其中每个元素、属性、文本等都是一个独立的节点。 ...
换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 ->操作创建或读写(元素、节点、属性、注释)等 2、IXMLDOMNode类:每个元素或节点基本都会有的...
但需要注意,DOM解析在处理大型XML文件时可能会消耗大量内存,因此在资源有限的环境下,可能需要考虑使用更轻量级的解析方式,如SAX解析。 总结来说,DOM解析XML文件是一种常见的数据处理技术,通过构建内存中的DOM...
- 可以通过DOM树上的节点执行各种操作,如添加新元素、修改属性值、删除节点等。 #### 总结 DOM解析是Java中一种常用的处理XML文档的方式。它将整个文档加载到内存中,并通过DOM树的形式提供对文档内容的访问。...
标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...
5. 操作DOM:可以添加、删除、修改节点,实现对XML文档内容的修改。 写入XML文件时,通常涉及以下过程: 1. 创建DOM树:使用DOM API创建一个新的DOM树结构,这可能涉及到创建元素、属性和文本节点。 2. 修改DOM树...
在给定的代码片段中,可以看到一系列关于XML节点操作的方法,包括查询所有节点、删除子节点、添加子节点以及更新子节点。下面分别对这些方法进行详细解析。 ##### 1. 查询所有节点(`selectAllNodes()`) - **创建...
DOM的核心思想是将XML文档解析为一个树形结构,其中每个节点代表XML文档的一个部分,如元素、属性、文本等。 DOM模型允许开发者通过编程方式访问和修改XML文档的任何部分。以下是一些关键的DOM XML知识点: 1. **...
XMLDocument对象是XMLDOM的核心,它是整个XML文档的根节点,代表了一个完整的XML文件。这个对象提供了许多方法和属性,使得我们能够对XML文档进行读取、写入、查询和修改。 1. **创建和加载XML文档** - `load()` ...
本篇文章将深入探讨Qt5如何使用DOM(Document Object Model)模型来操作XML文件,实现增、删、改、查功能。 首先,让我们了解Qt5中的QDomDocument类。QDomDocument是DOM模型的核心,它代表了一个完整的XML文档。你...
为了解决这一问题,微软推出了XML DOM(Document Object Model for XML),这是一种用于处理XML文档的强大工具。 #### 二、XML DOM概述 XML DOM 是一个用于处理XML文档的标准对象模型。它提供了一组API...
解析XML时,`DocumentBuilder`会构建一个DOM树,然后可以通过DOM API查询和修改树中的节点。 总结一下,Java DOM提供了一套全面的API来处理XML文档,包括创建、修改和读取XML结构。尽管DOM操作相对消耗资源,但其...