@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. Java_Iterator-------迭代器配合Listarray使用,具有更多的功能(转载)

    转载自:http://www.cnblogs.com/amboyna/archive/2007/09/25/904804.html 迭代器(Iterator) 迭代器是一种设计模式,它是一个对象,它可 ...

  2. 添加samba用户,并设置密码

    5.3.3 添加samba用户,并设置密码; 我们用的方法是先添加用户,但添加的这些用户都是虚拟用户,因为这些用户是不能通过SHELL登录系统的;另外值得注意的是系统用户密码和Samba用户的密码是不 ...

  3. 暑假集训(1)第五弹 -----Rails(Uva514)

    PopPush城市有一座著名的火车站.这个国家到处都是丘陵.而这个火车站是建于上一个世纪.不幸的是,那时的资金有限.所以只能建立起一条路面铁轨.而且,这导致这个火车站在同一个时刻只能一个轨道投入使用, ...

  4. oracle 备份脚步

    #!/bin/sh # Date: -- : # Author: chzh # Version: # Update: Add copy db backup file to remote back se ...

  5. PhoneGap与WAP站静态化

    最近在参与的WAP站项目,决定将所有页面都静态化处理,登录验证.价格数据等都通ajax动态的方式实现.开始这么规划的目前是为了页面提高网站加载速度及SEO,最近看到了一篇报道phonegap buil ...

  6. TDirectory.GetCreationTime、TDirectory.SetCreationTime获取和设置文件夹创建时间

    使用函数: System.IOUtils.TDirectory.GetCreationTime//获取创建时间 System.IOUtils.TDirectory.SetCreationTime//设 ...

  7. typedef与define基本使用

    参考: typedef用法 http://www.cnblogs.com/ggjucheng/archive/2011/12/27/2303238.html#define用法:http://blog. ...

  8. ACM竞赛常用STL(二)之STL--algorithm

    <algorithm>无疑是STL 中最大的一个头文件,它是由一大堆模板函数组成的.下面列举出<algorithm>中的模板函数: adjacent_find / binary ...

  9. 旧版Xcode下载地址

    怕忘记了,做个记号 https://developer.apple.com/downloads/

  10. Protel DXP画原理图常见错误与警告

    一.警告信息 警告信息对于将来转换成PCB不会造成严重问题,通常可以忽略.但它也给我们提供了一些参考,比如unconnceted pin能告诉我们芯片的哪些管脚没有连接,很有检错意义. 1.has n ...