DOM解析XML写回文件为空?

问题描述

用DOM解析xml,以下是Java代码eHashAlg.getFirstChild().getNodeValue()和eHashAlg.getFirstChild().setNodeValue(hashAlg)都起作用了,就是写回文件的时候,写回去的是空的。不知道哪里有问题?DocumentBuilderFactorydbf=DocumentBuilderFactory.newInstance();try{DocumentBuilderdb=dbf.newDocumentBuilder();Filefile=newFile("D:\verify.xml");Documentdoc=db.parse(file);NodeListnl=doc.getElementsByTagName("data_process");ElementeVCfg=(Element)nl.item(0);NodeeHashAlg=eVCfg.getElementsByTagName("hash_alg").item(0);System.out.println(eHashAlg.getFirstChild().getNodeValue());eHashAlg.getFirstChild().setNodeValue(hashAlg);System.out.println(eHashAlg.getFirstChild().getNodeValue());DOMSourcesource=newDOMSource(doc);StreamResultresult=newStreamResult(newFile("D:\verify.xml.bak"));System.out.println(result.getOutputStream());TransformerFactorytff=TransformerFactory.newInstance();Transformertf=tff.newTransformer();Propertiesproperties=tf.getOutputProperties();properties.setProperty(OutputKeys.ENCODING,"GB2312");tf.setOutputProperties(properties);tf.transform(source,result);}catch(ParserConfigurationExceptione){e.printStackTrace();}catch(SAXExceptione){e.printStackTrace();}catch(IOExceptione){e.printStackTrace();}catch(TransformerConfigurationExceptione){e.printStackTrace();}catch(TransformerExceptione){e.printStackTrace();}

解决方案

解决方案二:
StreamResultresult=newStreamResult(newFile("D:\verify.xml.bak"));System.out.println(result.getOutputStream());

这里你定义了一个输出,而这个输出没有任何内容,当然打印为空了具体的输出操作是在tf.transform(source,result);

这里完成的这里所做的就是把source内容输出到result中。
解决方案三:
引用1楼stl0的回复:

JavacodeStreamResultresult=newStreamResult(newFile("D:\verify.xml.bak"));System.out.println(result.getOutputStream());这里你定义了一个输出,而这个输出没有任何内容,当然打印为空了具体的输出操作是在Javacodetf.tran……

为什么输出没有内容呢?输出操作tf.transform(source,result)的source就是啊?
解决方案四:
引用2楼ytmfdx的回复:

为什么输出没有内容呢?输出操作tf.transform(source,result)的source就是啊?

我用不同的xml测试了下,输出的文件有内容啊
解决方案五:
引用3楼stl0的回复:

引用2楼ytmfdx的回复:为什么输出没有内容呢?输出操作tf.transform(source,result)的source就是啊?我用不同的xml测试了下,输出的文件有内容啊

那是环境问题了?你用java版本是多少的?
解决方案六:
引用4楼ytmfdx的回复:

那是环境问题了?你用java版本是多少的?

JRE6

时间: 2024-09-28 03:53:48

DOM解析XML写回文件为空?的相关文章

Android使用Dom解析xml文件并进行展示

本程序实现了使用Dom方法从网络端解析xml文件,展示在列表,并实现点击进入相关页面. 首先我们创建一个类,用来实现http请求和xml文件节点的获取,这里的http请求很简单,就传递一 个url,在代码中通过这样的一个方法实现 public String getXmlFromUrl(String url) { String xml = null; try { // defaultHttpClient DefaultHttpClient httpClient = new DefaultHttpC

Android开发之DOM解析xml文件的方法_Android

本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

用DOM解析XMl文件生成SVG

问题描述 我们老板让我们用DOM解析XMl转化成SVG文件,求指教!!! 解决方案 解决方案二:svg本来就是基于XML的.所以你只要知道怎么使用DOM就差不多了.你想知道点什么?解决方案三:就是了解结构,解析!

Android开发之DOM解析xml文件的方法

本文实例讲述了Android中DOM解析xml文件的方法.分享给大家供大家参考,具体如下: 一.在assets文件中写xml文件 <?xml version="1.0" encoding="UTF-8"?> <persons> <person id="23"> <name>李明</name> <age>30</age> </person> <pe

java中用dom解析xml的经典入门级文档

dom|xml 一.前言 用Java解析XML文档,最常用的有两种方法:使用基于事件的XML简单API(Simple API for XML)称为SAX和基于树和节点的文档对象模型(Document Object Module)称为DOM.Sun公司提供了Java API for XML Parsing(JAXP)接口来使用SAX和DOM,通过JAXP,我们可以使用任何与JAXP兼容的XML解析器.JAXP接口包含了三个包:(1)org.w3c.dom W3C推荐的用于XML标准规划文档对象模型

python 解析XML python模块xml.dom解析xml实例代码_python

一 .python模块 xml.dom 解析XML的APIminidom.parse(filename)加载读取XML文件 doc.documentElement获取XML文档对象 node.getAttribute(AttributeName)获取XML节点属性值 node.getElementsByTagName(TagName)获取XML节点对象集合 node.childNodes #返回子节点列表. node.childNodes[index].nodeValue获取XML节点值 nod

JSP基于dom解析xml实例详解_JSP编程

本文实例讲述了JSP基于dom解析xml的方法.分享给大家供大家参考,具体如下: 初次学习用dom操作xml文件,有很多不足之处,牛人多给点建议,练习时我没对中文做乱码处理,也没做验证哦!O(∩_∩)O~ 实体类:User public class User { private String name; private String pwd; private String email; public String getName() { return name; } public void se

jsp 读取XML的类库之DOM解析 xml实例教程

jsp教程 读取XML的类库之DOM解析 xml实例教程 xml文件: <?xml version="1.0" encoding="GB2312"?> <RESULT>   <VALUE>        <NO>A1234</NO>        <ADDR>四川省XX县XX镇XX路X段XX号</ADDR>   </VALUE>   <VALUE>      

java dom-关于Java Dom 解析XML后,在TableTreeView下的修改问题

问题描述 关于Java Dom 解析XML后,在TableTreeView下的修改问题 最近在看Java解析XML的相关资料,在尝试用DOM解析时,出现一些小问题. 用DOM解析XML后,在TableTreeView里显示,然后调用了 ViewerColumn 中的 setEditingSupport() 方法,对XML标签间 TextContent 进行修改,但是在判断能否修改时产生了一些问题,不知道如何在 canEdit() 中进行判断,要求只对标签的TextContent进行编辑. pro