public class Dom4j03 {
public static void main(String[] args) throws Exception {
// ① 创建文档
fn1();
// ② 创建节点
fn2();
// ② 修改节点
fn3();
}
private static void fn3() throws Exception{
File file = new File(SD.D_W,"Text.xml");
SAXReader reader = new SAXReader();
Document doc = reader.read(file);
// 打印到控制台
XMLWriter w1 = new XMLWriter();
w1.write(doc);
// 修改属性
Element root = doc.getRootElement();
root.attribute("msg").setText("��");
w1.write(doc);
// 修改节点
// 第一个C节点下的cc节点修改为CC节点
Element c1 = (Element)root.elements("C").get(0);
// 删除为父删子
c1.remove(c1.element("cc"));
c1.addElement("CC");
// 修改内容
Element c2 = (Element)root.elements("C").get(1);
c2.setText("内容修改");
// 删除节点(没有字节点的节点)
for (Object obj : root.elements("C")) {
Element ele = (Element) obj;
if (ele.elements().size() == 0 && ele.getText().equals(""))
root.remove(ele);
}
// 更新后控制台打印
w1.write(doc);
XMLWriter w2 = new XMLWriter(new FileWriter(file));
w2.write(doc);
w2.flush();
w2.close();
}
// ② 创建节点
private static void fn2() throws IOException{
// 文档
Document doc = DocumentHelper.createDocument();
// xml文件流
File file = new File(SD.D_W,"Text.xml");
// ①
// XMLWriter writer = new XMLWriter(new FileWriter(file));
// ②
FileOutputStream out = new FileOutputStream(file);
OutputFormat format = OutputFormat.createCompactFormat();
format.setEncoding("utf-8");
XMLWriter writer = new XMLWriter(out,format);
// 操作节点
// Element root = DocumentHelper.createElement("Test");
// doc.add(root);
// ②
doc.addComment("注释"); // 注释
Element root = doc.addElement("text");// 节点
root.addAttribute("msg", "测试的xml");// 节点属性
Element aEle = root.addElement("A");
Element bEle = root.addElement("B");
aEle.addCDATA("A标签的<cdata>文本");// 节点内容
bEle.addText("B标签的普通文本");
Element c1 = root.addElement("C");
c1.addElement("cc");
Element c2 = root.addElement("C");
c2.addText("cc");
root.addElement("C");
// 写入文件
writer.write(doc);
// 关闭流
writer.close();
}
// ① 创建文档
private static void fn1() throws IOException{
// 1.利用DocumentHelper功能类创建文档Document
Document doc = DocumentHelper.createDocument();
// System.out.println(doc);
// 2.利用Dom4j通过的流将doc写入xml文件
XMLWriter writer = null;
// 1)创建无参XMLWriter对象,该类会创建一个控制台输出流
// writer = new XMLWriter();
// writer.write(doc);
// 2)创建一个参数为流的XMLWriter对象,则操作会依照参数流的指向
File file = new File(SD.D_W,"Text.xml");
Writer out = new FileWriter(file);
writer = new XMLWriter(out);
writer.write(doc);
// 字符流关闭流时有缓冲区操作
writer.close();
}
}
相关文章
- java操作(DOM、SAX、JDOM、DOM4J)xml方式的四种比较与详解
- Python openpyxl : Excel 文档简单操作
- 【Spring(概念和ioc入门、ioc操作xml配置文件)】
- 在Sql Server 2005中将主子表关系的XML文档转换成主子表“Join”形式的表
- 韩顺平_PHP程序员玩转算法公开课(第一季)03_单链表crud操作之_水浒英雄排行算法_学习笔记_源代码图解_PPT文档整理
- 韩顺平_PHP程序员玩转算法公开课(第一季)12_双向链表crud操作之_水浒英雄排行_学习笔记_源代码图解_PPT文档整理
- 韩顺平_PHP程序员玩转算法公开课(第一季)03_单链表crud操作之_水浒英雄排行算法_学习笔记_源代码图解_PPT文档整理
- 需要将XML在线文档转换为SQL-Server表
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- 哪些信息包含作为.xlsx Excel 2007文件一部分的sheet * .xml文档?