dom4j修改xml文件

dom4j修改xml文件

@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());
		}
	       
	}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109113.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Latex 希腊字母大写[通俗易懂]

    Latex 希腊字母大写[通俗易懂]大写小写LaTeX大写大写LaTeX$A\quad\alpha$A\alphaNνN\quad\nuNνN\nuBβB\quad\betaBβB\betaΞξ\Xi\quad\xiΞξ\Xi\xiΓγ\Gamma\quad\gammaΓγ\Gamma\gammaOoO\quadoOoOoΔδ\Delta\quad\deltaΔδ\Delta\deltaΠπ\Pi\quad\piΠπ\Pi\p…

    2022年10月13日
    3
  • 华为交换机不同网段互访_华为三层交换机实现不同vlan,不同网段的互通

    华为交换机不同网段互访_华为三层交换机实现不同vlan,不同网段的互通实验任务:1.不同vlan,不同网段实现互通;2.路由AR11用默认路由配置;3.LSW8实现三层交换机功能;如下华为拓扑图:配置思路:1.将LSW8看成一个路由器,LSW8下面连接(LSW7和LSW6)的设备都看一个pc,这样就成两个路由互联,下面各接一个pc这样只需让左边的PC7和右边的PC8互通即可搞定:如下图:2.LSW8是三层交换机,先不看192.168.6.0网段和192.168.7….

    2025年10月29日
    6
  • 深入浅出Nginx

    深入浅出Nginx

    2022年2月15日
    77
  • 100套大数据可视化炫酷大屏Html5模板

    100套大数据可视化炫酷大屏Html5模板100套大数据可视化炫酷大屏Html5模板;包含行业:社区、物业、政务、交通、金融银行等,全网最新、最多,最全、最酷、最炫大数据可视化模板。源码地址 giteehttps://gitee.com/iGaoWei/big-data-view githubhttps://github.com/iGaoWei/BigDataView 使用说明 直接下载,使用浏览器访问静态页面即可。 git拉取代码$gitclonehttps://gitee….

    2025年9月29日
    5
  • Ubuntu clion激活码2021【2021.7最新】

    (Ubuntu clion激活码2021)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~MLZPB5EL5Q-eyJsaWNlb…

    2022年3月21日
    313
  • Quartz定时任务的组件API[通俗易懂]

    title:Quartz技术(二)-Quartz组件APIcategories:后端tags:定时任务本讲主要说明Quartz中重要的几个组件的API。Scheduler(调度器)Scheduler的生命期,从SchedulerFactory创建它时开始,到Scheduler调用shutdown()方法时结束;Scheduler被创建后,可以增加、删除和列举Job和Tri…

    2022年4月9日
    47

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号