精华内容
下载资源
问答
  • java生成xml文件
    千次阅读
    2022-06-10 19:07:57

    最近项目有个需求,需要根据java对象生成XML文件,并且将文件以字节流的形式发送出去。

    具体不罗嗦,直接上代码。

    工具包:dom4j,不是maven项目的同学去下载dom4j依赖以后,在项目下建一个lib目录就能引入。

            <dependency>
    			<groupId>dom4j</groupId>
    			<artifactId>dom4j</artifactId>
    			<version>1.6.1</version>
    		</dependency>

    demo代码,注释很详细,不多言,有疑问,欢迎提问。

    
    import lombok.extern.java.Log;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.XMLWriter;
    
    import java.io.*;
    import java.util.Arrays;
    
    
    public class MakeDocumentApp {
        public static void main(String[] args) {
    
            // 1.声明文件名称
            String fileName = "xml_test";
            // 2.创建dom对象
            Document document = DocumentHelper.createDocument();
    
            // 3.添加节点,根据需求添加,这里我只是设置了一个head节点,下面有name和age两个子节点
            Element head = document.addElement("Head");
            Element name = head.addElement("name");
            name.setText("LQ");
            Element age = head.addElement("age");
            age.addText("18");
    
            // 4、格式化模板
            //OutputFormat format = OutputFormat.createCompactFormat();
            OutputFormat format = OutputFormat.createPrettyPrint();
            format.setEncoding("UTF-8");
    
            // 5、生成xml文件
            ByteArrayOutputStream out = new ByteArrayOutputStream();
            try {
                XMLWriter writer = new XMLWriter(out, format);
                writer.write(document);
                writer.close();
            } catch (IOException e) {
                System.out.println("生成xml文件失败。文件名【" + fileName + "】");
            }
    
            // 6、生成的XML文件
            // 7、利用文件输出流输出到文件, 文件输出到了您的项目根目录下了
            try (FileOutputStream fos = new FileOutputStream(fileName + ".xml")) {
                fos.write(out.toByteArray());
            } catch (IOException e) {
                e.printStackTrace();
            }
    
        }
    
    
    }
    

    本来都保存了,回来贴一下成果图。

    <?xml version="1.0" encoding="UTF-8"?>
    
    <Head>
      <name>LQ</name>
      <age>18</age>
    </Head>

    更多相关内容
  • java 生成xml文件

    千次阅读 2022-03-04 21:47:31
    DOM方式生成 XML 文件 首先创建 DOM 树 的部分: 创建 DocumentBuilderFactry 对象 //创建一个 DocumentBuilderFactory 对象 DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance(); 创建 ...

    DOM方式生成 XML 文件

    首先创建 DOM 树 的部分:

    创建 DocumentBuilderFactry 对象

    //创建一个 DocumentBuilderFactory 对象
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();

    创建 DocumentBuilder 对象

    //创建DocumentBuilder对象
    DocumentBuilder db = dbf.newDocumentBuilder();di

    创建 Document 对象

    //创建 Document 对象
    Document document = db.newDocument();

     创建根节点

    //创建根节点
    Element school = document.createElement("school");

    创建子节点

    //创建子节点
    Element student = document.createElement("student");

    创建 student 的子节点

    //创建student的子节点
    Element name = document.createElement("name");
    Element age = document.createElement("age");
    Element address = document.createElement("address");

    给 student 的子节点添加文内容

    //给 name 节点添加 文本内容
    name.setTextContent("小明");
    age.setTextContent("18");
    address.setTextContent("北京市海定区五道口");

    把 student 的子节点添加到 student 节点 下

    //把子节点 添加到 student 节点下
    student.appendChild(name);
    student.appendChild(age);
    student.appendChild(address);

    向 student 节点 添加属性和属性值

    //向 studet 节点添加属性和属性值
    student.setAttribute("id", "1");

    向根节点下添加 student 节点

    //向 school 添加子节点
    school.appendChild(student);

    将根节点添加到 dom 树中

    //将 根节点(已经包含子节点    )添加到dom树中
    document.appendChild(school);

    DOM 树生成完事了



    接着将 DOM 树转换成 XML 文件

    创建 TransformerFactory 对象

    //创建 TransformerFactory 对象
    TransformerFactory tff = TransformerFactory.newInstance();

    创建 Transformer 对象

    //创建 Transformer 对象
    Transformer tf = tff.newTransformer();

    使用 Transformer 的 transform 方法把 DOM 树转换成 XML 文件

    //使用 Transformer 的 transform 方法把Dom树转换成  XML 文件
    tf.transform(new DOMSource(document), new StreamResult(new File("School_01.xml")));

    生成 XML 文件完事 



    运行结果:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?><school><student id="1"><name>小明</name><age>18</age><address>北京市海定区五道口</address></student></school>

    我们可以看到生成 XML 文件成功了,但是生成的内容是一整行,没有自动换行,不易读

    设置XML 文件自动换行

    //设置生成的 XML 文件自动换行 
    tf.setOutputProperty(OutputKeys.INDENT, "yes");

    再次运行结果,可以看到生成的 XML 文件自动换行了:

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <school>
    <student id="1">
    <name>小明</name>
    <age>18</age>
    <address>北京市海定区五道口</address>
    </student>
    </school>

    此外,可以看到,在 XML 文件申明部分中,有 standalone 这个属性,该属性表示当前 XML 是否有相对应的 dtd 或 scheam 文件作为其说明文档。

    若属性值为“yes",则代表当前 XM了 文件没有 dtd 或 schema 文件作为其说明文档。

    由于没有用到 dtd 或 schema ,所以可以 通过 Document 的 setXmlStandalone()方法将该属性隐藏掉。

    //隐藏 XML文件 standalone 属性
    document.setXmlStandalone(true);

    再次测试可以发现已经没有该属性了。


    完整代码

     try {
                //创建一个 DocumentBuilderFactory 对象
                DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
                //创建DocumentBuilder对象
                DocumentBuilder db = dbf.newDocumentBuilder();
                //创建 Document 对象
                Document document = db.newDocument();
                
                //隐藏 XML文件 standalone 属性
                document.setXmlStandalone(true);
                //创建根节点
                Element school = document.createElement("school");
                //创建子节点
                Element student = document.createElement("student");
                //创建student的子节点
                Element name = document.createElement("name");
                Element age = document.createElement("age");
                Element address = document.createElement("address");
                
                //给 name 节点添加 文本内容
                name.setTextContent("小明");
                age.setTextContent("18");
                address.setTextContent("北京市海定区五道口");
                
                //把子节点 添加到 student 节点下
                student.appendChild(name);
                student.appendChild(age);
                student.appendChild(address);
                
                //向 studet 节点添加属性和属性值
                student.setAttribute("id", "1");
                //向 school 添加子节点
                school.appendChild(student);
                //将 根节点(已经包含子节点    )添加到dom树中
                document.appendChild(school);
                
                //..将 dom树转换为 XML文件
                //创建 TransformerFactory 对象
                TransformerFactory tff = TransformerFactory.newInstance();
                //创建 Transformer 对象
                Transformer tf = tff.newTransformer();
                //设置生成的 XML 文件自动换行 
                tf.setOutputProperty(OutputKeys.INDENT, "yes");
                //使用 Transformer 的 transform 方法把Dom树转换成  XML 文件
                tf.transform(new DOMSource(document), new StreamResult(new File("School_01.xml")));
                
            } catch (ParserConfigurationException e) {
                e.printStackTrace();
            }catch (TransformerException e) {
                e.printStackTrace();
            }
       }

    展开全文
  • java生成xml文件

    2021-06-22 17:36:47
    //签名文件 public File createXml_p(String name,String certSN,String signatureValue){ try{ //1.创建document对象 Document document = DocumentHelper.createDocument(); //2.创建根节点 ...
    //签名文件
    	public File createXml_p(String name,String certSN,String signatureValue){
    		try{
    			//1.创建document对象
    			Document document = DocumentHelper.createDocument();
    			//2.创建根节点
    			Element root = document.addElement("Signature");
    			root.addAttribute("xmlns:xs", "http://www.w3.org/2001/XMLSchema");
    			Element EBDVersion = root.addElement("Version");
    			EBDVersion.addText("1");
    			Element RelatedEBD = root.addElement("RelatedEBD");
    			Element EBDID = RelatedEBD.addElement("EBDID");
    			EBDID.addText(name);//加密文件名
    			Element CertSN = root.addElement("CertSN");
    			CertSN.addText(certSN);//每个地区证书
    			Element SignatureAlgorithm = root.addElement("SignatureAlgorithm");
    			SignatureAlgorithm.addText("SM2-SM3");
    			Element SignatureValue = root.addElement("SignatureValue");
    			SignatureValue.addText(signatureValue);//签名
    			// 5、设置生成xml的格式
    			OutputFormat format = OutputFormat.createPrettyPrint();
    			// 设置编码格式
    			format.setEncoding("UTF-8");
    			// 6、生成xml文件			
    			File file = new File("D:/test"+"/EBDS_EBDB_"+name +".xml");
    			XMLWriter writer = new XMLWriter(new FileOutputStream(file), format);
    			// 设置是否转义,默认使用转义字符
    			writer.setEscapeText(false);
    			writer.write(document);
    			writer.close();
    			System.out.println("生成应急广播签名文件成功");
    			return file;
    		}catch(Exception e){
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return null;
    	}

     

     

    展开全文
  • Java 生成XML文档

    2021-11-27 14:35:57
    创建一个文件输出流,用于存储xml文件 将文件输出流,转换为xml存储输出流 写出文档 释放资源 1.通过文档帮助器(DocumentHelper),创建空的文档对象 Document doc = DocumentHelper.creatDocument(); 2.通过文档

    Java 生成XML文档

    一、编写XML文档

    二、数据的生成

    一、编写XML文档

    步骤:

    1. 通过文档帮助器(DocumentHelper),创建空的文档对象
    2. 通过文档对象,向其中添加根节点
    3. 通过根节点对象root,丰富子节点
    4. 创建一个文件输出流,用于存储xml文件
    5. 将文件输出流,转换为xml存储输出流
    6. 写出文档
    7. 释放资源
    1.通过文档帮助器(DocumentHelper),创建空的文档对象
    Document doc = DocumentHelper.creatDocument();
    
    2.通过文档对象,向其中添加根节点
    Element root = doc.addElement("根节点名称");
    
    3.通过根节点对象root,丰富子节点
    Element e = root.addElement("元素名称");
    
    4.创建一个文件输出流,用于存储xml文件
    FileOutputStream fos = new FileOutputStream("要存储的位置");
    
    5.将文件输出流,转换为xml存储输出流
    XMLWriter xw = new XMLWriter(fos);
    
    6.写出文档
    xw.write(doc);
    
    7.释放资源
    xw.close();
    

    举个例子

    //1. 	文档帮助器,创建一个文档对象
    Document doc = DocumentHelper.creatDocument();
    //2.	给文档添加一个根节点
    Element books = doc.addElement("books");
    //3.	通过根节点,丰富子节点
    for(int i=0;i<100;i++){
        Element book = books.addElement("book");
        Element name = book.addElement("name");
        name.setText(i+"卖火柴的小女孩");
        Element info = book.addElement("info");
        info.setText(i+"有铀元素制作的小火柴");
        book.addAttribute("id",100+i+"");
    }
    //4. 	创建一个文件输出流
    FileOutputStream fos = new FileOutputStream("D://1//books.xml");
    //5.	将输出流转换为XML输出流
    XMLWrite xw = new XMLWrite(fos);
    //6.	写出文档
    xw.write(doc);
    //7.	释放资源
    xw.close();
    

    二、数据的生成

    // XStream 使用

    1. 创建XStream对象
    2. 修改生成的目标节点
    3. 传入对象,开始生成

    //=============

    前提是:需要创建好 对象

    比如:

    Person p = new Person();
    p.setName("张三");
    p.setAge(18);
    // 省略 构造方法、setget方法、toString等
    
    1.创建XStream对象
    XStream x = new XSTream();
    
    2.修改生成的目标节点
    x.alias("person",Person.class);
    
    3.传入对象,开始生成
    String xml = x.toXML(p);
    
    4.可以通过控制台查看生成的结果
    System.out.println(xml);
    
    展开全文
  • Java 创建XML文件

    2021-03-17 23:03:31
    package ...import java.io.File;import java.util.Arrays;import java.util.List;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import javax.xml.t...
  • 例如xml文件的形式是<student><age>1</age><age2>2</age2></student>,在Java文件中设置demo路径,要替换的值,最后分别生成xml文件,例如要换成aa,则xml两个,一个为<student><age>aa</age><age>2</age></student>,...
  • 在这类技术领域,W3C提出了 DOM 和 SAX规范用来解析数据,Sun提供了Java XML Pack,而 Apache则推出了Xerces 和Xalan。然而,几乎没有什么关注的目光投射到输出XML这一问题上来。把JavaBeans和Swing组件变成 XML的...
  • 既然能在代码中解析XML文档获取数据,当然也能通过代码动态生成XML文档了。 与解析XML一样,生成XML文档也是用到了那4种方法。 一:DOM方法生成XML 步骤: 1:创建DocumentBuilder:DocumentBuilder builder=...
  • Java生成xml文件的四种方式

    千次阅读 2020-12-10 11:26:53
    import java.io.File; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import ...
  • JAVA 解析XML生成XML文档源码。比较全 1.DOM生成和解析XML文档 2.SAX生成和解析XML文档 3.DOM4J生成和解析XML文档 4.JDOM生成和解析XML
  • 使用Java创建xml文件

    2021-02-12 09:25:19
    packageorg.xml.example;importjava.io.File;importjava.io.StringWriter;importjavax.xml.parsers.DocumentBuilder;importjavax.xml.parsers.DocumentBuilderFactory;importjavax.xml.parsers.ParserConfigurationE...
  • 主要介绍了java生成xml格式文件的方法,涉及java节点遍历与属性操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • java基础 创建xml文件

    2021-02-28 13:10:49
    import java.io.File;import java.io.StringWriter;import java.security.KeyStore.Builder;import javax.xml.parsers.DocumentBuilder;import javax.xml.parsers.DocumentBuilderFactory;import j...
  • JAVA 生成 XML文件

    2009-04-03 23:56:50
    一个可以用java自动生成xml文件 参考此文件可以从数据库里面提取数据后生成xml数据库
  • java创建xml文件

    2012-10-24 13:20:18
    java创建xml文件,直接运行 main 方法看效果.
  • //goods是allGoods的子节点 } //(7)输出文档文件中,创建XML转换器 TransformerFactory tf = TransformerFactory.newInstance() ; Transformer t =null; try{ t=tf.newTransformer() ; } catch...
  • java生成XML文件.zip

    2021-08-31 16:07:15
    java生成xml文件示例
  • 因为公司有大量需求需要人工的做XML,也就是复制一条XML更改一些变动的数据而已,为了偷懒我直接用JAVAXML分分钟几千条完成,简直不要太爽。
  • NULL 博文链接:https://coral.iteye.com/blog/453718
  • JAVA生成XML文件的四种方法
  • 主要介绍了java生成XML的方法,涉及java针对xml格式文件的简单操作技巧,并附带demo源码供读者下载参考,需要的朋友可以参考下
  • java生成xml字符串和创建xml本地文件

    万次阅读 2017-10-04 16:52:08
    之前在网上看到了很多java生成xml字符串和创建xml本地文件的文章,但是感觉不太完整和解释不太详细(可能是我没有找到。。。)! 所以我自己总结了一下知识,希望对大家有用,也方便自己查阅!! 这篇博客的思路:...
  • 创建一个指向XML文件的输入流 FileInputStream fis = new FileInputStream(“xml文件的地址”); 创建一个XML读取工具对象 SAXReader sr = new SAXReader(); 使用读取工具对象, 读取XML文档的输入流 , 并得到文档...
  • JAVA生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,152,705
精华内容 461,082
关键字:

java生成xml文件

友情链接: 200532590089.rar