`

java修改XML文件节点的属性输出文件问题

    博客分类:
  • java
阅读更多

输出文件时,属性的值没有发生改变

 

 

                       String src = request.getSession().getServletContext().getRealPath(
					"/");
			File file = new File(src + "xml/scene.xml");
			SAXReader sax = new SAXReader();
			Document document = sax.read(file);
			Element root = document.getRootElement();
			Element returnHome = root.element("returnHome");
			Element lightin = returnHome.element("lighting");
			System.out.println(lightin);
			boolean flag=false;
			for (Iterator it = lightin.elementIterator(); it.hasNext();) {
				Element element = (Element) it.next();
				System.out.println(element.attribute("value").getValue());
				System.out.println(element.attribute("status").getValue());
				if ("lighiting1".equals(element.attributeValue("value"))) {
					element.attribute("status").setValue("1");
					flag=true;
					continue;
				}
			}
			if (flag) {
				StringWriter writer = new StringWriter();
		        OutputFormat format = OutputFormat.createPrettyPrint(); 
		        format.setEncoding("utf-8");
		        XMLWriter xmlwriter = new XMLWriter(writer, format);
		        xmlwriter.write(document);  
		        writer.flush();
		        xmlwriter.flush();
		        writer.close();
		        xmlwriter.close();
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}

 作修改之后 的代码为:

 

try {
			String src = request.getSession().getServletContext().getRealPath(
					"/");
			String path=src + "xml/scene.xml";
			File file = new File(src + "xml/scene.xml");
			SAXReader sax = new SAXReader();
			Document document = sax.read(file);
			Element root = document.getRootElement();
			Element returnHome = root.element("returnHome");
			Element lightin = returnHome.element("lighting");
			System.out.println(lightin);
//			String[] lighting = request.getParameterValues("lighting");
//			String[] curtain = request.getParameterValues("curtain");
			boolean flag=false;
			for (Iterator it = lightin.elementIterator(); it.hasNext();) {
				Element element = (Element) it.next();
				System.out.println(element.attribute("value").getValue());
				System.out.println(element.attribute("status").getValue());
				if ("lighiting1".equals(element.attributeValue("value"))) {
					element.attribute("status").setValue("1");
					element.attribute("name").setValue("XXXXXXXXXXX");
					flag=true;
//					closeAction();
					continue;
				}
			}
			if (flag) {
				FileWriter writer = new FileWriter(path);
		        OutputFormat format = OutputFormat.createPrettyPrint(); 
		        format.setEncoding("utf-8");
		        XMLWriter xmlwriter = new XMLWriter(writer, format);
		        xmlwriter.write(document); 
		        writer.flush();
		        xmlwriter.flush();
		        writer.close();
		        xmlwriter.close();
//				 FileWriter out = new FileWriter(filename);
//				 document.write(out);
//				 out.flush();
//				 out.close();
			}
		} catch (DocumentException e) {
			e.printStackTrace();
		}

 

原因:

   在输入新文件的时候,应该指定文件的路径.

分享到:
评论

相关推荐

    java_xml_api,java操作XML文档

    它允许开发者将XML数据绑定到Java类上,这样就可以直接通过Java对象来操作XML,反之亦然。JAXB大大简化了XML数据的序列化和反序列化过程,对于XML数据的输入输出操作非常便捷。 4. DOM与SAX的比较 DOM解析器在内存...

    java xml,java生成xml文档,java操作XML文件设置值

    本篇文章将深入探讨如何使用Java生成XML文档以及操作XML文件设置值。 一、Java生成XML文档 1. DOM(Document Object Model):DOM是W3C推荐的一种XML的标准API,它将XML文档解析为一个树形结构,允许我们通过节点...

    java读取跟输出xml文件

    本教程将介绍如何使用Java读取和输出XML文件,主要涉及两个库:JDOM2和XStream。 首先,我们来了解一下JDOM2。JDOM2是一个针对Java平台的API,专门用来处理XML文档。它提供了方便的方法来创建、修改和读取XML文档。...

    java读写xml文件

    Java语言在处理XML文件时,通常使用两种主要的方法:DOM(Document Object Model)和SAX(Simple API for XML)。在本场景中,我们主要关注DOM方法,因为标题和描述提到了“在内存中构造一个DOM树”。DOM允许我们将...

    自制JAVA导出XML文件

    然后,通过`Transformer`对象将内存中的`Document`对象转换为XML文件,并指定输出的编码和格式化选项。 在实际应用中,我们可能需要从数据库或其他数据源获取数据,然后动态地构建XML结构。这可以通过遍历数据集并...

    自己写的java对xml文件操作的类

    总的来说,你的类提供了一个方便的接口,使得在Java应用程序中操作XML文件变得更加简单。这种封装对于处理XML数据的项目来说是很有价值的,可以减少重复代码,提高代码质量,并有助于提升开发效率。

    JAVA对象序列化保存为XML文件的工具类

    【JAVA对象序列化保存为XML文件的工具类】 在Java编程中,对象序列化是一种将对象的状态转换为字节流的过程,以便可以存储或在网络上传输。而在反序列化时,这个字节流又可以恢复为原来的对象。Java提供了一个方便...

    java操作XML文件

    从给定的文件信息来看,我们正在探讨的主题是“Java操作XML文件”,这涉及到了Java编程语言中的DOM(Document Object Model)技术,用于解析、读取和修改XML文档。下面,我们将深入分析这一主题,包括如何使用Java...

    java 解析xml并打印输出

    这里我们可能采用了DOM,因为DOM一次性加载整个XML文档到内存中,方便遍历和操作,适合小型XML文件。对于大型XML文件,SAX或StAX会更高效,因为它们是事件驱动或流式解析,占用资源较少。 首先,我们需要使用Java的...

    java写XML文件和读取XML文件《一个优秀程序员必会知识要点》

    根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍如何使用Java进行XML文件的读写操作。在现代软件开发中,XML(可扩展标记语言)被广泛应用于数据存储和交换,尤其在Web服务中作为传递数据的一种标准...

    用java读写xml文件

    在Java中,对XML文件的操作主要包括读取和写入两个方面。 #### 二、Java中处理XML的主要方法 Java提供了多种处理XML的方法,包括SAX、DOM、StAX等。本文主要介绍的是基于DOM模型的方式,因为这种方式相对直观,适合...

    Java操作XML编程实例解析.doc

    Java操作XML编程主要涉及到以下几个关键知识点: 1. **XML(eXtensible Markup Language)**:XML是一种可扩展的标记语言,用于存储和传输结构化数据。它的设计目的是传输和存储数据,而不是显示数据,因此它不像...

    利用java语言解析xml文件

    通过以上分析,我们了解了如何使用Java和DOM4J库来解析XML文件并输出其内容。这种方法适用于小型到中型的XML文件处理任务,在实际项目中非常实用。掌握了这些基础知识后,可以根据具体需求进一步扩展和优化代码。

    java日期和查询数据库生成XML文件类

    在Java编程中,日期处理和数据操作是两个非常重要的领域,尤其当涉及到数据持久化时,如生成XML文件。XML是一种广泛使用的结构化数据交换格式,适用于存储和传输数据。以下是一些关于“java日期和查询数据库生成XML...

    xml文件的操作,包括xml文件读写,添加删除结点等

    此外,对于更复杂的XML操作,如查找特定节点、修改节点属性等,`ElementTree`库提供了丰富的API。例如,可以使用`find()`、`findall()`或`iter()`方法查找满足条件的节点: ```python # 查找节点 found_node = root...

    JAVA对xml操作

    象模型)是一种标准的W3C规范,用于处理XML文档。DOM解析器将整个XML文档加载到内存中,形成一个树形结构,允许开发者通过节点...无论选择哪种方式,理解XML的基本结构和DOM模型是关键,这有助于更有效地操作XML文档。

    Java创建xml文档笔记(DOM,DOM4J)

    在Java编程中,XML(可扩展标记语言)是一种被广泛用于数据存储和交换的格式,尤其是在Web服务和配置文件中。本笔记将深入探讨如何使用DOM(文档对象模型)和DOM4J库来创建XML文档。 一、DOM解析器 DOM是W3C推荐的...

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

    写入XML文件,通常使用`XMLWriter`或`OutputFormat`来格式化输出。例如: ```java SAXReader reader = new SAXReader(); Document document = reader.read(new File("input.xml")); // 对document进行操作... ...

    Java 读写XML总结

    本篇将详细总结在Java中如何读取和写入XML文件,以及相关的工具和技术。 首先,Java提供了一些内置的API来处理XML,如JAXB(Java Architecture for XML Binding)、DOM(Document Object Model)、SAX(Simple API ...

Global site tag (gtag.js) - Google Analytics