java利用xml导出word(占位符替换)

上传人:大米 文档编号:562159262 上传时间:2023-01-15 格式:DOC 页数:6 大小:40KB
返回 下载 相关 举报
java利用xml导出word(占位符替换)_第1页
第1页 / 共6页
java利用xml导出word(占位符替换)_第2页
第2页 / 共6页
java利用xml导出word(占位符替换)_第3页
第3页 / 共6页
java利用xml导出word(占位符替换)_第4页
第4页 / 共6页
java利用xml导出word(占位符替换)_第5页
第5页 / 共6页
点击查看更多>>
资源描述

《java利用xml导出word(占位符替换)》由会员分享,可在线阅读,更多相关《java利用xml导出word(占位符替换)(6页珍藏版)》请在金锄头文库上搜索。

1、packagecn.action;importjava.io.File;importjava.io.FileInputStream;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.Date;importjava.util.HashMap;importjava.util.Iterator;importjava.util.Lis

2、t;importjava.util.Map;importjava.util.Set;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.transform.Transformer;importjavax.xml.transform.TransformerFactory;importjavax.xml.transform.dom.DOMSource;importjavax.xml.transform.stream.StreamResult;im

3、portorg.w3c.dom.Document;importorg.w3c.dom.Element;importorg.w3c.dom.NodeList;importsun.misc.BASE64Encoder;publicclassXmlWordprivateMapdataMap=newHashMap();publicMapgetDataMap()returndataMap;publicvoidsetDataMap(MapdataMap)this.dataMap=dataMap;/*设置标识值*paramtagList标识*paramdataList数据*paramdataMap*/pub

4、licvoidsetData(ListtagList,ListdataList)Iteratorit1=tagList.iterator();Iteratorit2=dataList.iterator();while(it1.hasNext()this.dataMap.put(it1.next(),it2.next();/*载入一个xml文档*paramfilename文件路径*return成功返回Document对象,失败返回null*/publicDocumentLoadXml(Stringfilename)Documentdoc=null;tryDocumentBuilderFactor

5、yfactory=DocumentBuilderFactory.newInstance();DocumentBuilderbuilder=factory.newDocumentBuilder();doc=(Document)builder.parse(newFile(filename);System.out.println(doc);catch(Exceptione)System.out.println(”载入xml文件时出错”);e.printStackTrace();returndoc;/*图片转码* return返回图片base64字符串* throwsException*/public

6、StringgetImageStr(StringimgFile)InputStreamin=null;BASE64Encoderencoder=null;bytedata=null;tryin=newFileInputStream(imgFile);catch(FileNotFoundExceptione)System.out.println(”文件没找到!);e.printStackTrace();trydata=newbytein.available();in.read(data);in.close();catch(IOExceptione)e.printStackTrace();enco

7、der=newBASE64Encoder();returnencoder.encode(data);/*doc2XmlFile*将Document对象保存为一个xml文件* returntrue:保存成功flase:失败* paramfilename保存的文件名* paramdocument需要保存的document对象*/publicbooleandoc2XmlFile(Documentdocument,Stringfilename)booleanflag=true;tryTransformerFactorytransFactory=TransformerFactory.newInstanc

8、e();Transformertransformer=transFactory.newTransformer();DOMSourcesource=newDOMSource();source.setNode(document);StreamResultresult=newStreamResult();FileOutputStreamfileOutputStream=newFileOutputStream(filename);result.setOutputStream(fileOutputStream);transformer.transform(source,result);fileOutpu

9、tStream.close();catch(Exceptionex)flag=false;ex.printStackTrace();returnflag;/*替换标识内容:单个文本标记* paramelement要替换内容的节点* paramtag标识名称* paramdata替换参数* return返回替换后的节点* throwsException*/publicElementreplaceTagContext(Objectelement,Stringtag,Stringdata)ElementxElement=null;xElement=(Element)element;NodeListt

10、Elements=xElement.getElementsByTagName(w:t);/w:t标签组for(inti=0;itElements.getLength();i+)ElementtElement=(Element)tElements.item(i);if(tElement.getTextContent().equals(tag)tElement.setTextContent(data);returnxElement;/*替换标识内容:多个文本标记*paramelement要替换内容的节点*return返回替换后的节点*throwsException*/publicElementre

11、placeTagContext(Elementelement)ElementxElement=element;NodeListtElements=xElement.getElementsByTagName(w:t);/w:t标签组SetdataSet=this.dataMap.keySet();Iteratorit=dataSet.iterator();while(it.hasNext()Stringtag=it.next();Stringdata=dataMap.get(tag);for(inti=0;itElements.getLength();i+)ElementtElement=(El

12、ement)tElements.item(i);if(tElement.getTextContent().equals(tag)tElement.setTextContent(data);returnxElement;/*添加图片*paramelement需要替换内容的节点*paramtag标识名称*paramimgName图片名称,若word中有多张图,图片名必须唯一*paramimgStr图片转码后的base64字符串*return返回替换后的节点*/publicElementreplacePic(Elementelement,Stringtag,StringimgName,Stringi

13、mgFile)ElementxElement=element;NodeListtElements=xElement.getElementsByTagName(w:binData);/w:t标签组pkg:binaryDataStringwName=wordml:/+imgName;for(inti=0;itElements.getLength();i+)ElementpicElement=(Element)tElements.item(i);if(picElement.getTextContent().equals(tag)picElement.setTextContent(this.getIm

14、ageStr(imgFile);/*图片编码*/picElement.setAttribute(w:name,wName);设置名字ElementimagedataElement=(Element)xElement.getElementsByTagName(v:imagedata).item(i);imagedataElement.setAttribute(src,wName);returnxElement;/* 插入图片* paramparentElement图片添加至何处* paramimgFile图片路径* paramisnewLine是否换行* return返回添加图片节点后的节点*/publicElementaddPic(ElementparentElement,StringimgFile,booleanisnewLine)Documentparent=parentElement.getOwnerDocument();Elementp=null;Elementpict=null;ElementbinData=null;Elementshape=null;Elementimagedata=null;Stringsr

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号