Dom4j循环读取xml节点
进期在做数据处理,遇到使⽤Dom4j解析⽂件,记录demo备⽤。
需求:循环出多个同⼀⽗节点下多个字字节点的数据,然后把这些数据按照顺序重新⽣成新的放⼊到新的节点名不同的xml内。准备:dom4j-1.6.1.jar、原始xml⽂件
<?xml version="1.0" encoding="UTF-8"?>
<book>
<edition>1.0</edition>
<copyright>巴伦创维</copyright>
<article>
<;信息标题>信息标题1</信息标题>
<;内容描述>内容描述1</内容描述>
<;信息内容>信息内容1</信息内容>
<;创建⽇期>创建⽇期</创建⽇期>
<;成⽂⽇期>创建⽇期</成⽂⽇期>
</article>
<article>
<;信息标题>信息标题2</信息标题>
<;内容描述>内容描述2</内容描述>
<;信息内容>信息内容2</信息内容>
<;创建⽇期>创建⽇期2</创建⽇期>
<;成⽂⽇期>成⽂⽇期2</成⽂⽇期>
</article>
<article>
<;信息标题>信息标题3</信息标题>
<;内容描述>内容描述3</内容描述>
<;信息内容>信息内容3</信息内容>
<;创建⽇期>创建⽇期3</创建⽇期>
<;成⽂⽇期>成⽂⽇期3</成⽂⽇期>
</article>
<article>
<;信息标题>信息标题4</信息标题>
<;内容描述>内容描述4</内容描述>
<;信息内容>信息内容4</信息内容>
<;创建⽇期>创建⽇期4</创建⽇期>
<;成⽂⽇期>成⽂⽇期4</成⽂⽇期>
</article>
<article>
<;信息标题>信息标题5</信息标题>
<;内容描述>内容描述5</内容描述>
<;信息内容>信息内容5</信息内容>
<;创建⽇期>成⽂⽇期5</创建⽇期>
<;成⽂⽇期>成⽂⽇期5</成⽂⽇期>
</article>
<article>
<;信息标题>信息标题6</信息标题>
<;内容描述>内容描述6</内容描述>
<;信息内容>信息内容6</信息内容>
<;创建⽇期>成⽂⽇期6</创建⽇期>
<;成⽂⽇期>成⽂⽇期6</成⽂⽇期>
</article>
</book>
直接贴代码:
package mysqlxml;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.List;
import org.dom4j.Document;
import org.dom4j.DocumentException;
使用dom4j解析xml文件import org.dom4j.Element;
import org.dom4j.io.SAXReader;
/**
*
* 数据处理,xml转换节点名称
* @author baron
*
*/
public class Dom4jDemo1 {
/**
* 转换xml节点名称
* @param node 根节点
*/
public void exportNewXML(Element node){
String xml="<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
xml+="\r\n";
xml+="<book>";
xml+="\r\n";
xml+="\t"+"<edition>1.0</edition>";
xml+="\r\n";
xml+="\t"+"<copyright>巴伦创维</copyright>";
xml+="\r\n";
//获取⼦节点集合
List<Element> elarts = node.elements();
try {
//循环
for (Element ele : elarts) {
//获取article⼦节点的数据跟xml拼接,⽣成新的xml⽂件
Name().equals("article")){
xml+="\t"+"<article> "+"\r\n";
xml+="\t"+"\t"+"<title>"+ ele.element("信息标题").getText() +"</title>" +"\r\n";
xml+="\t"+"\t"+"<crtime>"+ ele.element("创建⽇期").getText() +"</crtime>" +"\r\n";
xml+="\t"+"\t"+"<reltime>"+ ele.element("成⽂⽇期").getText() +"</reltime>" +"\r\n";
xml+="\t"+"\t"+"<depiction>"+ ele.element("内容描述").getText() +"</depiction>" +"\r\n"; xml+="\t"+"\t"+"<text>"+ ele.element("信息内容").getText() +"</text>" +"\r\n";
xml+="\t"+"</article> "+"\r\n";
}
}
xml+="</book>";
//指定新⽂件⽣成地址并⽣成
File f = new File("F://new/新的.xml");
OutputStream out = null ;
out = new FileOutputStream(f);
byte b[] =Bytes() ;
out.write(b) ;
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("成功了!");
}
public static void main(String[] args) throws DocumentException {
SAXReader red = new SAXReader();
//读取⽂件
Document document = ad(new File("F://new/旧的.xml")); Element node = RootElement();
Dom4jDemo1 dd = new Dom4jDemo1();
}
}
运⾏结果:
<?xml version="1.0" encoding="UTF-8"?>
<book>
<edition>1.0</edition>
<copyright>巴伦创维</copyright>
<article>
<title>信息标题1</title>
<crtime>创建⽇期</crtime>
<reltime>创建⽇期</reltime>
<depiction>内容描述1</depiction>
<text>信息内容1</text>
</article>
<article>
<title>信息标题2</title>
<crtime>创建⽇期2</crtime>
<reltime>成⽂⽇期2</reltime>
<depiction>内容描述2</depiction>
<text>信息内容2</text>
</article>
<article>
<title>信息标题3</title>
<crtime>创建⽇期3</crtime>
<reltime>成⽂⽇期3</reltime>
<depiction>内容描述3</depiction>
<text>信息内容3</text>
</article>
<article>
<title>信息标题4</title>
<crtime>创建⽇期4</crtime>
<reltime>成⽂⽇期4</reltime>
<depiction>内容描述4</depiction>
<text>信息内容4</text>
</article>
<article>
<title>信息标题5</title>
<crtime>成⽂⽇期5</crtime>
<reltime>成⽂⽇期5</reltime>
<depiction>内容描述5</depiction>
<text>信息内容5</text>
</article>
<article>
<title>信息标题6</title>
<crtime>成⽂⽇期6</crtime>
<reltime>成⽂⽇期6</reltime>
<depiction>内容描述6</depiction>
<text>信息内容6</text>
</article>
</book>
结束。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论