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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 手机恢复出厂设置命令_OpenWRT 恢复出厂设置命令

    手机恢复出厂设置命令_OpenWRT 恢复出厂设置命令如果通过无线或者有线口无法连接到router,可以用恢复某些设置重新设置路由器。1.开机,等着一个工作灯亮的时候立即按下rest键2秒,然后就开始拼命闪烁,很好现在进入failsafe模式了。2.设置电脑的ip为静态ip192.168.1.x,并设置子网掩码(一般为点一下自动填充)。3.用网线连接路由器的有线口。4.telnet到路由器,默认ip为192.168.1.15.若只是修改某些设置可…

    2022年6月22日
    94
  • 零基础学Java(1)初识Java程序

    零基础学Java(1)初识Java程序前言就国内来说,Java毫无疑问是后端语言中的No.1没有之一,所以今天我们也来0基础学习Java!!!Java的好处(针对测试工程师)面试加分->涨薪大多数公司服务端用的都是Java,

    2022年7月31日
    6
  • python中astype 存在空值_python-DataFrame.astype()错误参数

    python中astype 存在空值_python-DataFrame.astype()错误参数使用列的字典时,astype引发ValueError.我试图将大DF中的稀疏列的类型转换(从float到int).我的问题是NaN值.即使将errors参数设置为’ignore’,使用列的字典时也不会忽略它们.这是一个玩具示例:t=pd.DataFrame([[1.01,2],[3.01,10],[np.NaN,20]])t.astype({0:int},errors=’ignore’)V…

    2022年5月25日
    77
  • MetaMask使用教程

    MetaMask使用教程MetaMask 是一款在谷歌浏览器 Chrome 上使用的插件类型的以太坊钱包 该钱包不需要下载 只需要在谷歌浏览器添加对应的扩展程序即可 非常轻量级 使用起来也非常方便 1 Chrome 的安装既然是一款运行在谷歌浏览器 Chrome 上的插件 当然首先需要先安装 Chrome 了 读者可以进入官网 https www google co

    2025年10月20日
    4
  • rpa文件解包_py封装exe

    rpa文件解包_py封装exe用cxfreeze打包py文件为exe文件全过程:必须全部看完,正确在后面注意:当前环境是Play_Craw,pipinstallcx-freeze时自然安装到了C:\Users\xiaosalang\Anaconda3\envs\Play_Craw\Scripts处检验是否安装成功:cxfreeze-h将路径切换到.py文件处:如桌面文件cx1.py内容是:whil…

    2022年4月19日
    44
  • c语言sizeof()_sizeof函数的用法

    c语言sizeof()_sizeof函数的用法sizeof是C语言中保留关键字,也可以认为是一种运算符,单目运算符。常见的使用方式:inta=10;intarr=[1,2,3];charstr[]="hello";intlen_a=sizeof(a);intlen_arr=sizeof(arr);intlen_str=sizeof(str)printf("len_a=%d,len_arr=%d,le…

    2022年9月17日
    2

发表回复

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

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