@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. 状态栏通知Notification的简单使用

    今天在学习Notification时同时参考了一些相关的博客,现在结合自身学习实际来总结一下. 在使用手机时,当有未接来电或者短消息时,通常会在手机屏幕上的状态栏上显示.而在Android中有提醒功能 ...

  2. SqlServer Change Data Capture(CDC)数据变更捕获

    最近在使用SqlServer2008r2数据库做系统的时候,在某些重要的.经常涉及到修改的表上,想加上一些恢复机制,一开始想找找看看有没有类似Oracle数据库闪回那样的功能,后来发现CDC的功能可以 ...

  3. Android应用程序消息处理机制笔记

    看老罗的Android源码情景分析学习的时候,边抄边理解再总结.希望能为面试提供点帮助吧. 1.Android应用程序是通过消息来驱动,Android应用程序每一个线程在启动时,都可以首先在内部创建一 ...

  4. 注册dll

    unit Unit1; interface uses  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...

  5. [python] 字符串与列表、字典的转换

    1.字符串->字典:eval(str) 2.字符串->列表:list(str)

  6. bzoj1402:[HAOI2008]硬币购物

    思路:完全背包加容斥原理 首先不考虑限制,那么很容易可以预处理出f[i](f[i]+=f[i-c[i]],1<=i<=4,i-c[i]>=0). 然后考虑如何求出限制后的答案. 首先 ...

  7. greenlet代码解读

    协程 上次已经讲解了协程的的实现方法,和我对协程的一些理解.这里指我就先以代码说明协程的运行.def test1():    print 12         (2)    gr2.switch()  ...

  8. ASP.NET设计模式(一)、适配器模式、依赖注入依赖倒置、空对象模式

    鸟随凤鸾,人伴贤良,得以共之,我之幸也.说的是鸟随着鸾凤可以飞的更高远,人和比自己境界高的相处,自己也会得到熏染进步. 一.概述 分享出来简单的心得,望探讨 依赖倒置 依赖注入 Adapter模式 N ...

  9. 《JavaScript高级程序设计》笔记(2):位操作符

    1.按位非(NOT) 2.按位与(AND) 3.按位或(OR) 4.按位异或(XOR) 5.左移 6.有符号右移 7.无符号右移 ----------------------------------- ...

  10. 《JavaScript高级程序设计》笔记(1):<script>元素

    使用<script>元素内部的JavaScript代码将从上至下依此解释.在使用<script>嵌入的JavasCript代码时,代码任何地方不能出现"</sc ...