问题背景:我使用PownerDesigner设计好物理模型生成PDM文件,用文本编辑器打开发现它是XML格式的,由于特殊原因,我要批量修改PDM里的东西,貌似可以通过写脚本在PownerDesigner里实现修改,只是我对这些脚本不熟悉,而我对java解析XML有一定的了解。于是我写了一些java程序读取该xml文件,发现读取生成后的xml文件跟之前读取的原始文件不是很一样,目前至少发现原始文件里的换行符号被替换成空格符号,导致生成后的xml文件,不被PownerDesigner程序识别。
问题简述:有个xml文件为:“a.xml”, 我通过 dom4j读取该文件,生成“b.xml”. 如何使a.xml和b.xml的内容基本完全一样?这个”基本完全一样“是指“a.xml”和“b.xml”只包含我修改的极个别字符,其余完全一样,包括特殊符号也一样。
问题样例代码: public static void main(String[] args) throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("E:/UAP/src.xml"));
/**
* 开始写我需要修改的xml元素内容代码
* .............
*/
//将修改后的xml内容保存到另外一个xml里面
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK"); // 指定XML编码
XMLWriter writer = new XMLWriter(new FileWriter("E:/UAP/output.xml"),format);
writer.write(document);
writer.close();
}执行代码后:
“src.xml”文件内容为:<?xml version="1.0" encoding="GBK"?>
<p>
1
1
1
1
1
1
1
1
1
1
1
1
</p>输出的“output.xml”文件内容为:<?xml version="1.0" encoding="GBK"?><p>1 1 1 1 1 1 1 1 1 1 1 1</p>从上述可以看出,"output.xml"并没有将"src.xml"里的内容完全一模一样得读取过来,至少是将换行符号替换成了空格符号.
哪位大虾能帮小弟解惑,小弟不甚感激.javaXML
问题简述:有个xml文件为:“a.xml”, 我通过 dom4j读取该文件,生成“b.xml”. 如何使a.xml和b.xml的内容基本完全一样?这个”基本完全一样“是指“a.xml”和“b.xml”只包含我修改的极个别字符,其余完全一样,包括特殊符号也一样。
问题样例代码: public static void main(String[] args) throws Exception {
SAXReader saxReader = new SAXReader();
Document document = saxReader.read(new File("E:/UAP/src.xml"));
/**
* 开始写我需要修改的xml元素内容代码
* .............
*/
//将修改后的xml内容保存到另外一个xml里面
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("GBK"); // 指定XML编码
XMLWriter writer = new XMLWriter(new FileWriter("E:/UAP/output.xml"),format);
writer.write(document);
writer.close();
}执行代码后:
“src.xml”文件内容为:<?xml version="1.0" encoding="GBK"?>
<p>
1
1
1
1
1
1
1
1
1
1
1
1
</p>输出的“output.xml”文件内容为:<?xml version="1.0" encoding="GBK"?><p>1 1 1 1 1 1 1 1 1 1 1 1</p>从上述可以看出,"output.xml"并没有将"src.xml"里的内容完全一模一样得读取过来,至少是将换行符号替换成了空格符号.
哪位大虾能帮小弟解惑,小弟不甚感激.javaXML
OutputFormat format = OutputFormat.createPrettyPrint(); 是不是这个漂亮的格式化惹的祸啊?
format.setTrimText(false);