java 生成xml文件怎么有格式
需要jdom.jar和dom4j.jar这两个包/*** 将crash信息打包成xml格式* @param hashMap 原始crash信息的hashmap形式* @throws IOException* @throws JDOMException*/public void BuildXMLDoc(HashMap hashMap) throws IOException, JDOMException {int size = hashMap.size();Iterator iter = hashMap.entrySet().iterator();Map.Entry entry;String key;String val;int id = 1;// 创建根节点 list;Element root = new Element("phoneInfo");// 根节点添加到文档中;Document Doc = new Document(root);// 此处 迭代器的遍历 可替换成循环遍历 数据库表的结果集操作;while (iter.hasNext()) {entry = (Map.Entry)iter.next();key = (String)entry.getKey();val = hashMap.get(key);if (val == null || val.length() == 0){val = "null";}// 创建节点 user;Element elements = new Element("category");// 给 user 节点添加属性 id;elements.setAttribute("id", "" + id);id ++;// 给 user 节点添加子节点并赋值;// new Element("name")中的 "name" 替换成表中相应字段,setText("xuehui")中 "xuehui// 替换成表中记录值;elements.addContent(new Element(key).setText(val));// 给父节点list添加user子节点;root.addContent(elements);}//带有缩进格式的xml 更美观Format format = Format.getPrettyFormat();XMLOutputter XMLOut = new XMLOutputter(format);XMLOut.output(Doc, new FileOutputStream(FileUtil.CRASHPATH));System.out.println("完成了文件写入");} 上面虽然是对hashmap的遍历,但是对于其他容器的遍历形式不变,只是换成你需要的信息即可下面是其他文章找到的生成XML的时候,处理特殊字符element.addContent(new CDATA(" content")); 生成XML的时候,设置编码XMLOutputter XMLOut = new XMLOutputter();XMLOut.setEncoding("gb2312");XMLOut.output(Doc, new FileOutputStream("test1.xml"));
如何用java生成一个xml文件
一个XML文档,可以先构造一个DOM,然后将DOM转化为xml序列,输出或者生成文件。
package test;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileOutputStream;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.transform.Transformer;import javax.xml.transform.TransformerFactory;import javax.xml.transform.dom.DOMSource;import javax.xml.transform.stream.StreamResult;import org.w3c.dom.Document;import org.w3c.dom.Element;public class Test { public static void generate(){ try { DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.newDocument(); document.setXmlVersion("1.0"); document.setXmlStandalone(true); Element root = document.createElement_x("MobileNet"); //创建根节点 document.appendChild(root); //将根节点添加到Document对象中 Element pageElement = document.createElement_x("page"); //设置第一个page元素到 pageElement.setAttribute("name", "list.jsp"); //设置page节点的name属性 Element methodElement = document.createElement_x("method"); //设置method节点 methodElement.setTextContent("get"); //给method设置值 pageElement.appendChild(methodElement); //添加method节点到page节点内 Element displayElement = document.createElement_x("display"); //设置method节点 displayElement.setTextContent("list撒旦发放"); //给display设置值 pageElement.appendChild(displayElement); //添加display节点到page节点内 Element request_paramElement = document.createElement_x("request_param"); request_paramElement.setTextContent("request_param1|request_param2"); pageElement.appendChild(request_paramElement); root.appendChild(pageElement); pageElement = document.createElement_x("page"); //设置第二个page元素到 pageElement.setAttribute("name", "content.jsp"); //设置page节点的name属性 methodElement = document.createElement_x("method"); methodElement.setTextContent("post"); pageElement.appendChild(methodElement); displayElement = document.createElement_x("display"); displayElement.setTextContent("content"); pageElement.appendChild(displayElement); Element url_titleElement = document.createElement_x("url_title"); //设置url_title节点 url_titleElement.setTextContent("title,publisher,published_calendar"); //给url_title设置值 pageElement.appendChild(url_titleElement); //添加url_title节点到page节点内 root.appendChild(pageElement); //将page段加人根节点内 TransformerFactory transFactory = TransformerFactory.newInstance(); //开始把Document映射到文件 Transformer transFormer = transFactory.newTransformer(); DOMSource domSource = new DOMSource(document); //设置输出结果 File file = new File("MobileNetRule.xml"); //生成xml文件 if (!file.exists()) { file.createNewFile(); } FileOutputStream out = new FileOutputStream(file); //文件输出流 StreamResult xmlResult = new StreamResult(out); //设置输入源 transFormer.transform(domSource, xmlResult); //输出xml文件 System.out.println(file.getAbsolutePath()); //测试文件输出的路径 TransformerFactory tf = TransformerFactory.newInstance(); Transformer t = tf.newTransformer(); t.setOutputProperty("{/encoding/}","GB2312/"); ByteArrayOutputStream boc = new ByteArrayOutputStream(); t.transform(new DOMSource(document), new StreamResult(boc)); String xmlstring = boc.toString(); System.out.println(xmlstring); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args){ Test.generate(); }}
java 生成xml文件
1-apache的POI,此方法对Excel的导出做的很好,目前对Word的导出方面的功能尚未完全。
2-纯JavaScript脚本实现。
主要通过客户端调用本机Office组件来实现。
3-在JSP页面引入头文件实现。
纯JavaScript脚本实现细节方面大体是创建一个word组件ActiveXObject('Word.Application'),用js通过表ID取得表内容然后保存到word,要注意的是js实现有很多不好的地方,例如Internet选项需要把ActiveX空间全部启用,安全级别设置为中。
这样的话岂不是每台机器都要配置一下。
其次每次生成word文档以后弹出对话框(无法保存此文件,因为它已在别处打开(C:\...\STARTUP\Powerword.dot)),出现此问题就需要把C:\Documents and Settings\当前用户名\Application Data\Microsoft\Word\STARTUP下的Powerword.dot文件删除,每次遇到此问题就需要删除文件来解决,十分不方便。
JSP页面引入来实现Word保存就方便多了,但是也有不足的地方,首先如果需要引入如果需要下载的话就引入<%@ page contentType="application/msword; charset=utf-8" %>其实如果大家用框架做就方便多了,比如Struts2。
在Action里直接写如下代码:if(out!=null){String fileName="";fileName+="评价报告.doc";try {HttpServletResponse response = ServletActionContext.getResponse();response.setHeader("Content-disposition","attachment; filename="+new String(fileName.getBytes("GB2312"), "8859_1"));} catch (UnsupportedEncodingException e) {e.printStackTrace();}out是jsp页面表单元素,一个button,用于提交表单到相应Action进行Word下载。
Action设置jsp页面头文件。
这样每次点击button就可以把相应jsp页面的内容保存到Word中并且支持下载,Word中内容并且是可编辑状态。
不足的地方在于由于表内容是动态生成,有的需要先查看在下载Word,就需要另外建立一个新JSP页面进行Word下载,当然首先要在struts.xml里配置好页面转向。
新建立的页面传值同查看页面要保持一样。
java中如何生成word文档的目录页
1.创建带有格式的word文档,将该需要动态展示的数据使用变量符替换。
2. 将刚刚创建的word文档另存为xml格式。
3.编辑这个XMl文档去掉多余的xml标记,如图中蓝色部分 4.从Freemarker官网【下载】最新的开发包,将freemarker.jar拷贝到自己的开发项目中。
5.新建DocUtil类,实现根据Doc模板生成word文件的方法 6.用户根据自己的需要,调用使用getDataMap获取需要传递的变量,然后调用createDoc方法生成所需要的文档。
看了你的java动态生成xml
java解析excel生成的xml文件的方法是使用dom4j实现的。
dom4j是一个简单的开源库,用于处理XML、 XPath和XSLT,它基于Java平台,使用Java的集合框架,全面集成了DOM,SAX和JAXP。
1、excel生成的xml样例文件: xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" xmlns:html="http://www.w3.org/TR/REC-html40"> 2006-09-16T00:00:00Z 2016-07-25T03:26:50Z 14.00 7956 14808 240 168 2 False False ss:WrapText="1"/> x:FullRows="1" ss:DefaultRowHeight="14.4"> 工号 姓名 工号 姓名 111 张三 111 ss:Type="String">张三 112 李四 112 ss:Type="String">李四 3 7 5 False False 2、java解析代码:import java.io.File; import java.util.Iterator; import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.Element; import org.dom4j.io.SAXReader; public class Demo { public static void main(String[] args) throws Exception { SAXReader reader = new SAXReader(); Document document = reader.read(new File("person.xml")); Element root = document.getRootElement(); Iterator it = root.elementIterator(); while (it.hasNext()) { Element element = (Element) it.next(); //未知属性名称情况下 /*Iterator attrIt = element.attributeIterator(); while (attrIt.hasNext()) { Attribute a = (Attribute) attrIt.next(); System.out.println(a.getValue()); }*/ //已知属性名称情况下 System.out.println("id: " + element.attributeValue("id")); //未知元素名情况下 /*Iterator eleIt = element.elementIterator(); while (eleIt.hasNext()) { Element e = (Element) eleIt.next(); System.out.println(e.getName() + ": " + e.getText()); } System.out.println();*/ //已知元素名情况下 System.out.println("title: " + element.elementText("title")); System.out.println("author: " + element.elementText("author")); System.out.println(); } } }
java怎么创建word文档
有个最简单,不用使用任何 poi 或其他第三方类库的方法生成 excel ,或 word ,你把一个生成好的 word 例子用文件另存为 xml , docx 之类,然后你再直接用记事本去打开这个 docx ,你就会发现是 xml 格式,这个时候,你在程序里面就直接用普通代码生成这个 xml 就可以了。
转载请注明出处51数据库 » java xml生成word
不懂看头像罒罒罒罒罒罒约吗