改进的Java XML文件合并工具类
工作中遇到需要合并XML的问题,遂从网上查找相关资料,
1、 《 XML merging made easy
》
2 、《java中合并xml文档的设计与实现
》
测试后发现均不符合实际需求,实际需求如下:
file1.xml:
<root>
<a>
<b name="1"/>
</a>
<d />
<e id='1' />
</root>
file2.xml:
<root>
<a>
<b name="22"/>
</a>
<d name="qq"/>
<e id='1' />
</root>
合并后需要得到:
<root>
<a>
<b name="22" />
<b name="1" />
</a>
<d name="qq" />
<e id="1" />
<d />
</root>
基于《java中合并xml文档的设计与实现
》的介绍对代码进行改进,完成了此功能,代码如下:
package davyxie;
import java.io.File;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.w3c.dom.DOMException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
* XML文件合并工具类
* @author davyxie
*/
public class XMLMergeUtil {
/**
* XML文件的合并处理
* @param mainFileName 待合并处理的xml文件,合并后将更新此文件
* @param subFilename 被合并的xml文件
* @return 合并成功返回true,否则返回false
* @throws Exception
&
相关文档:
作为java菜鸟,在学习到数据库操作的时候往往会遇到一个很头痛的问题,数据库中文乱码。这似乎是每个java程序员在成长过程中都会遇到的问题,下面我就把我自己的几种方法和大家分享一下。(一般是在MyEclipse下开发)
java项目:
首先,确保项目的编码是gbk或utf-8(),在Windows->Preferences->General->Workplac ......
原题如下:用1、2、2、3、4、5这六个数字,用java写一个程序,打印出所有不同的排列,如:512234、412345等,要求:"4"不能在第三位,"3"与"5"不能相连。
解题思路:
很明显,这是一个递归算法。我们可以排列将这6个数按从小到大的顺序排一下,如果是1,2,3,4,5,6,那么会有1 ......
1.要解析的XML文件如下:
<?xml version="1.0" encoding="GB2312"?>
<?xml-stylesheet href="student.xsl" type="text/xsl"?>
<StudentInfo>
<student>
<name>达内</name>
<sex>男</sex>
<lesson>
  ......
包括三个文件:studentInfo.xml(待解析的xml文件), Dom4jReadExmple.java(解析的主要类), TestDom4jReadExmple.java(测试解析的结果) (由于使用csdn blog自带的代码粘贴工具会朝里加入一些"..."字符,虽然利于查看,但是不利于把代码copy出来运行,而亲自运行代码对程序员来说是很重要的,故没有使用csdn blog自带的代码粘 ......
鉴于网上对Java的堆栈区分,众说纷纭,有的把C++的堆栈也混进来,有的没有分清Stack,Heap的中文翻译,搞得我把Stack当作堆,Heap当作栈,混乱了!昨天参加一外企的笔试,选择英文答案时,选错了,知道答案是堆,却选择了Stack!今天,决定把两者区分清楚!
&nbs ......