@SuppressWarnings("unchecked")
@Override
public void insertCustomInfo(File file, String modelCode,List<Property> props) {
SAXReader saxReadr = new SAXReader();// 得到SAXReader对象
try {
org.dom4j.Document doc=saxReadr.read(file);
org.dom4j.Element root = doc.getRootElement();// 得到根节点
if (null != props && props.size() > 0) {
//初始化删除添加的节点
org.dom4j.Element styleElement = root.element("Styles");
/*Iterator<org.dom4j.Element> it =styleElement.elementIterator();
while(it.hasNext()) {
org.dom4j.Element e = it.next();
if(e.) }*/
//List<org.dom4j.Element> domList=styleElement.selectNodes("/.");
//开始增加数据
if (null != styleElement) {
styleElement.addComment("custome style start");
for (Property p : props) {
//FIXME 根据属性样式不同,添加不同的样式
org.dom4j.Element se=styleElement.addElement("Style");
se.addAttribute("ss:ID", p.getCode());
se.addElement("NumberFormat");
se.addElement("Protection");
}
styleElement.addComment("custome style end");
}
org.dom4j.Element workSheetElement = root.element("Worksheet");
if (null != workSheetElement) {
org.dom4j.Element tableElement = workSheetElement.element("Table");
if (null != tableElement) {
org.dom4j.Element rowElement = tableElement.element("Row");
if (null != rowElement) {
for (Property p : props) {
org.dom4j.Element cellEle=rowElement.addElement("Cell");
cellEle.addElement("Data").addAttribute("ss:Type", "String").addText(InternationalResource.get(p.getDisplayName(), getCurrentLanguage()));
org.dom4j.Element commentEle=cellEle.addElement("Comment").addAttribute("ss:Author", "");
//commentEle.add(attribute);
}
}
List<org.dom4j.Element> columnElements=tableElement.elements("Column");
int size=columnElements.size();
if(null!=columnElements&&columnElements.size()>0) {
org.dom4j.Element colE = tableElement.element("Column");
if (null != colE) {
for (Property p : props) {
colE.addElement("Column").addAttribute("ss:Index", String.valueOf(size++));
colE.addElement("Column").addAttribute("ss:Index", String.valueOf(size++));
}
}
}
}
} }
OutputFormat format = OutputFormat.createPrettyPrint();
try {
XMLWriter writer = new XMLWriter(new FileWriter(file), format);
writer.write(doc);
writer.flush();
writer.close();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
log.info(root.getName());
} catch (DocumentException e) {
log.warn(e.getMessage());
} }

dom4j修改xml文件的更多相关文章

  1. 【dom4j xml】使用dom4j处理XML文件--测试过程遇到的问题

    首先 关于dom4j的API,有如下: 当然  其中的实体引用有以下: 测试使用环境: 使用Maven搭建web环境,pom.xml文件配置如下: <project xmlns="ht ...

  2. 【JAVA使用XPath、DOM4J解析XML文件,实现对XML文件的CRUD操作】

    一.简介 1.使用XPath可以快速精确定位指定的节点,以实现对XML文件的CRUD操作. 2.去网上下载一个“XPath帮助文档”,以便于查看语法等详细信息,最好是那种有很多实例的那种. 3.学习X ...

  3. 使用dom4j对xml文件进行增删改查

    1.使用dom4j技术对dom_demo.xml进行增删改查 首选要下载dom4j的jar包 在官网上找不到,网上搜索了一下在这个链接:http://sourceforge.net/projects/ ...

  4. 使用dom4j 解析xml文件

    //使用dom4j 解析xml文件,升级版,dom4j是对dom的封装 //重点 package com.offcn.utils; import java.io.File; import java.i ...

  5. dom4j 解析XML文件

    <?xml version="1.0" encoding="UTF-8"?> <!-- 手机的根节点 --> <Phones> ...

  6. java基础73 dom4j修改xml里面的内容(网页知识)

    1.DOM4J对XML文件进行增删改操作 实现代码 package com.shore.code; import java.io.File; import java.io.FileOutputStre ...

  7. 用dom4j修改xml(增加修改节点)

    用dom4j修改xml(增加修改节点) 博客分类: Java XMLJavaMyeclipseServlet  使用dom4j修改解析xml,xml文件的位置是配置在xml.properties文件中 ...

  8. Java xml 操作(Dom4J修改xml   + xPath技术  + SAX解析 + XML约束)

    1 XML基础 1)XML的作用 1.1 作为软件配置文件 1.2 作为小型的"数据库" 2)XML语法(由w3c组织规定的) 标签: 标签名不能以数字开头,中间不能有空格,区分大 ...

  9. 用dom4j解析xml文件并执行增删改查操作

    转自:https://www.aliyun.com/jiaocheng/1339446.html xml文件: <?xml version="1.0" encoding=&q ...

随机推荐

  1. Mysql 的一些异常解决

    一.关于大文件存储 1.利用mysql存储大文件时,异常截图 在配置文件中加上如下一行 2.改完后重启mysql,但是又报如下错误: 解决方案: 我的mysql 是5.6版本,查到网上说要修改配置文件 ...

  2. Java 泛型类型的一些限制

    由于泛型类型在运行时被消除,因此,对于如何使用泛型类型是有一些限制的. 限制1:不能使用new E() 不能使用泛型类型参数创建实例.例如,下面的语句是错误的: E object = new E(); ...

  3. Objective-C 中的方法回掉

    Objective-C 中的方法回掉  Objective-C 中的方法调用 OC 类似C+,避免不了的内部的各种通信手段,函数调用,变量传递等,避免不了各种回掉等. 一.class直接调用 或者 o ...

  4. swift-02代码流程的控制

    // //  main.swift //  02-语句 // //  Created by wanghy on 15/8/9. //  Copyright (c) 2015年 wanghy. All ...

  5. MVVM学习笔记

    MVVM学习笔记 1.MVVM的简介 MVVM模式是Model-View-ViewModel模式的简称,也就是由模型(Model).视图(View).视图模型(ViewModel),其目的是为了实现将 ...

  6. javascript dom 编程艺术笔记 第四章:图片库

    首先先建立一个html文件,建立一个图片库 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  7. NODE JS拼命吹,我就不喜欢. 别问为什么,直觉.

    NODE JS拼命吹,我就不喜欢. 别问为什么,直觉. 来看看node js 在paypal的捣鼓文章吧.https://www.paypal-engineering.com/2013/11/22/n ...

  8. varchar(n),nvarchar(n) 长度、性能、及所占空间分析 nvarchar(64) nvarchar(128) nvarchar(256)(转)

    varchar(n),nvarchar(n) 中的n怎么解释: nvarchar(n)最多能存n个字符,不区分中英文. varchar(n)最多能存n个字节,一个中文是两个字节. 所占空间: nvar ...

  9. .net ajax式上传文件

    今天在这里介绍一下ajax上传文件.其实也不算是真的使用xmlhttprequest上传,只是使用了iframe实现了无刷新上传而已,最多也只算 是仿ajax上传文件.然而网上关于使用xmlhttpr ...

  10. STM32系列命名规则

    转自:STM32系列命名规则 STM32 F 103 C 6 T 7 xxx 1 2 3 4 5 6 7 8 第1部分:产品系列名,固定为STM32 第2部分:产品类型:F表示这是Flash产品,目前 ...