Java修改XML中某元素值,生成新的XML文件。结果其他的空值元素出现问题,求助

现在有一个XML文件,其中有一个元素形式为<processid>XXX</processid>,我需要将该元素值修改成一个自增的值,然后批量生成新的XML文件。我使用如下... 现在有一个XML文件,其中有一个元素形式为<processid>XXX</processid>,我需要将该元素值修改成一个自增的值,然后批量生成新的XML文件。我使用如下的程序实现了该过程,但是问题来了!原XML文件中类似于<priority></priority>这样的空值元素的标签在新XML中变成了<priority/>。求各位大神解答怎么保持空值标签形式不变,或者给一个新的方式解决这个问题。
代码如下:
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Result;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

public class generateXML {

public static void main(String[] args) {
int times = 1;
String path1 = "D:\\Process_process2F.xml";
String path2 = "D:\\test\\2f1000\\Process_process2F";
try {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();

Document document = db.parse(path1);
NodeList list=document.getElementsByTagName("processid");
for (int i = 1; i <= times; i++) {
String num=i+"";
Element brandElement =(Element) list.item(0);
brandElement.setTextContent("process2F"+num);
Source xmlSource = new DOMSource(document);
TransformerFactory factory = TransformerFactory.newInstance();
Transformer transformer = factory.newTransformer();
Result result = new StreamResult(new File(path2 + num + ".xml"));
transformer.transform(xmlSource, result);
}
System.out.println("执行成功!输出了"+times+"份XML文件");
} catch (Exception ex) {

System.out.println(ex.getMessage());
}
}
}
展开
 我来答
ctkbg
2014-10-08 · 超过23用户采纳过TA的回答
知道答主
回答量:51
采纳率:0%
帮助的人:35.3万
展开全部
感觉没必要去管它,如果要弄那就在写出文件之前替换下,好像有个replace方法,格式化会自动将没有内容的标签更换成为关闭的标签。具体你参考下api
追问
转换了标签,这个xml文件就无法被一个我要用的程序识别了。我也感觉应该有办法关闭自动转换,但是搜了半天找不到
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式