`

Dom删除XML节点时应注意的问题

    博客分类:
  • XML
XML 
阅读更多

当循环删除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节点删除后留下空节点的问题通常涉及到理解XML库的工作原理以及正确使用所提供的API。通过适当的编程技巧和选择合适的工具,可以有效地避免这一问题,保持XML文档的整洁和正确性。

    XML中dom根据属性检索节点(C#)

    在提供的实验1文件中,可能包含了一个示例XML文件和相关的C#代码,用于演示如何根据属性检索XML节点。通过分析这些代码,你可以更深入地理解这个过程,并将这些知识应用到实际项目中。对于初学者而言,理解并掌握...

    dom遍历所有xml节点,并且重新生成xml

    在本主题“DOM遍历所有XML节点,并且重新生成XML”中,我们将深入探讨如何利用DOM API遍历XML文档的所有节点,并根据需求重新构建XML文档。 首先,让我们了解XML的基本结构。XML(eXtensible Markup Language)是一...

    dom4j 解析(读取) xml 节点数据

    在本教程中,我们将深入探讨如何使用DOM4J解析(读取)XML节点数据,不受XML层级的限制。 首先,确保你已经下载了必要的依赖,即DOM4J库。通常,这将是一个名为`dom4j-x.x.x.jar`的文件,其中x.x.x是DOM4J的版本号...

    删除XML根节点下的某子节点

    在处理XML文档时,有时我们需要根据需求删除特定的节点。XML是一种可扩展标记语言,用于存储和传输数据,它的结构化特性使得数据组织有序且易于处理。本文将深入讲解如何在编程环境中删除XML根节点下的特定子节点,...

    使用DOM4J对XML文件操作-添加、修改、删除、获取元素节点

    在本教程中,我们将深入探讨如何使用DOM4J来执行基本的XML操作,包括添加元素、修改元素、删除元素以及获取元素节点。 1. **添加元素节点** 在DOM4J中,添加元素节点通常涉及创建一个新的`Element`对象,然后将其...

    oracle 使用XMLDOM包,保存XML节点数据到数据库表中,支持多个节点嵌套XML格式

    ### Oracle使用XMLDOM包保存XML节点数据到数据库表中的实践 #### 一、背景与需求分析 在实际项目开发过程中,经常会遇到与第三方系统交互的需求。这些第三方接口往往返回的数据格式为XML。为了方便后续处理及存储...

    DOM解析XML 创建XML

    4. **操作XML节点**:DOM允许我们添加、删除、修改XML文档的任何部分。例如,添加新元素: ```javascript var newElement = xmlDoc.createElement("newElement"); newElement.textContent = "新元素的文本"; ...

    XML_DOM 教程 XML_DOM 教程

    XML DOM是一种在编程中处理XML文档的标准接口,它允许程序员和脚本动态地访问、修改、添加和删除XML文档的结构、内容和样式。DOM将XML文档视为一棵由节点构成的树,其中每个元素、属性、文本等都是一个独立的节点。 ...

    易语言模块 XMLDOM 解析 构造 获取 更改 添加 删除 遍历元素 格式化XML

    换句话说:XML DOM 是用于获取、更改、添加或删除 XML 元素的标准。 模块简介: 1、XMLDOMDocument类: XML对象文档 -&gt;操作创建或读写(元素、节点、属性、注释)等 2、IXMLDOMNode类:每个元素或节点基本都会有的...

    DOM解析XML文件例子

    但需要注意,DOM解析在处理大型XML文件时可能会消耗大量内存,因此在资源有限的环境下,可能需要考虑使用更轻量级的解析方式,如SAX解析。 总结来说,DOM解析XML文件是一种常见的数据处理技术,通过构建内存中的DOM...

    java_dom解析xml xml java

    - 可以通过DOM树上的节点执行各种操作,如添加新元素、修改属性值、删除节点等。 #### 总结 DOM解析是Java中一种常用的处理XML文档的方式。它将整个文档加载到内存中,并通过DOM树的形式提供对文档内容的访问。...

    DOM_XML.rar_DOM_dom xml_dom xml java_dom解析xml_java解析xml

    标题中的"DOM_XML.rar"可能是一个包含DOM解析XML相关示例的压缩文件,"DOM_dom xml_dom xml java_dom解析xml_java解析xml"这部分描述了文件的主要内容,即关于DOM(Document Object Model)在XML解析中的应用,特别...

    dom读取xml与写入xml

    5. 操作DOM:可以添加、删除、修改节点,实现对XML文档内容的修改。 写入XML文件时,通常涉及以下过程: 1. 创建DOM树:使用DOM API创建一个新的DOM树结构,这可能涉及到创建元素、属性和文本节点。 2. 修改DOM树...

    XML节点的操作

    在给定的代码片段中,可以看到一系列关于XML节点操作的方法,包括查询所有节点、删除子节点、添加子节点以及更新子节点。下面分别对这些方法进行详细解析。 ##### 1. 查询所有节点(`selectAllNodes()`) - **创建...

    xml.rar_DOM_XML DOM_dom xml_xml

    DOM的核心思想是将XML文档解析为一个树形结构,其中每个节点代表XML文档的一个部分,如元素、属性、文本等。 DOM模型允许开发者通过编程方式访问和修改XML文档的任何部分。以下是一些关键的DOM XML知识点: 1. **...

    xmldom

    XMLDocument对象是XMLDOM的核心,它是整个XML文档的根节点,代表了一个完整的XML文件。这个对象提供了许多方法和属性,使得我们能够对XML文档进行读取、写入、查询和修改。 1. **创建和加载XML文档** - `load()` ...

    Qt5 XML文件的解析,增删改查节点。

    本篇文章将深入探讨Qt5如何使用DOM(Document Object Model)模型来操作XML文件,实现增、删、改、查功能。 首先,让我们了解Qt5中的QDomDocument类。QDomDocument是DOM模型的核心,它代表了一个完整的XML文档。你...

    dom动态生成使用XML DOM生成XML.pdf

    为了解决这一问题,微软推出了XML DOM(Document Object Model for XML),这是一种用于处理XML文档的强大工具。 #### 二、XML DOM概述 XML DOM 是一个用于处理XML文档的标准对象模型。它提供了一组API...

    Java DOM 生成XML

    解析XML时,`DocumentBuilder`会构建一个DOM树,然后可以通过DOM API查询和修改树中的节点。 总结一下,Java DOM提供了一套全面的API来处理XML文档,包括创建、修改和读取XML结构。尽管DOM操作相对消耗资源,但其...

Global site tag (gtag.js) - Google Analytics