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

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

 

 

                       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();
		}

 

原因:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值