@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. MVC小系列(十九)【mvc与站点地图】

    我的MvcSiteMap地图主要由实体文件,XML配置文件,C#调用文件组成,当然为了前台调用方法,可以为HtmlHelper添加一个扩展方法 第一步 定义站点地图实体 public class Mv ...

  2. MVC Filter自定义验证(拦截)

    namespace QS.Web.Extensions { /// <summary> /// 验证session.权限 状态 /// </summary> [Attribut ...

  3. iOS开发——短信验证码

    作为iOS开发者,大家都应该知道ShareSDK这个比较出名的第三方分享(带统计功能)开发工具包. 他的官网今年年初发布了短信验证码的SDK.本文介绍它的短信验证码SDK.(部分过程参考官网如何集成的 ...

  4. js 无刷新分页代码

    /** * 分页事件处理 */function paging(){ $("#firstPage").click(function(){ //首页 var pageNo = getP ...

  5. java I/O技术

    一.流的分类 Java的流类大部分都是由InputStream.OutputStream.Reader和Writer这四个抽象类派生出来的 (1)按数据流向 输入流(InputStream类和Read ...

  6. C#(pronounced: see sharp) 与 .NET

    C#与.NET 一.什么是C# 这里的「#/♯」读作「sharp」,意思是「(Music, other)  (immediately postpositive) denoting a note tha ...

  7. Codevs 4560 NOIP2015 D2T2 子串

    > 4560 NOIP2015 D2T2 子串 时间限制: 1 s 空间限制: 128000 KB 题目等级:黄金 Gold 题目描述 Description 有两个仅包含小写英文字母的字符串A ...

  8. (转)Libevent(3)— 基础库

    转自:http://name5566.com/4202.html 参考文献列表:http://www.wangafu.net/~nickm/libevent-book/ 此文编写的时候,使用到的 Li ...

  9. 【实习记】2014-09-04浏览代码查middle资料+总结我折腾过的源码浏览器

        浏览着代码,看源码可以先看make文件,make文件有制造的流程信息. 一般可以从运行的程序对应的cpp看起.然而如果有框架,那就不容易了,会关系错纵复杂. 总结一下我折腾过的源码阅读器. s ...

  10. 转载的在DOS下操作mysql

    转载原文地址:http://www.server110.com/mysql/201309/1070.html 一.连接MYSQL. 格式: mysql -h主机地址 -u用户名 -p用户密码 1.例1 ...