使用Java创建XML文件

海军蓝

如何使用Java创建如下所示的XML文件?我尝试过,但无法获取内部标签

<FlyBoy>
      <learJet>CL-215</learJet>
      <rank>2</rank>
        <FlyBoy>
             <viper>Mark II</viper>
             <rank>1</rank>
             <FlyBoy>
                 <viper>Mark II4455</viper>
                 <rank>2</rank>
                 <FlyBoy>
                     <viper>Mark II56666</viper>
                     <rank>3</rank>
                </FlyBoy>
             </FlyBoy>
        </FlyBoy>
    </FlyBoy>
杰伊

该结构不是通常的结构。但是,仍然可以使用以下代码生成该代码,

import java.io.File;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.TransformerFactoryConfigurationError;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;
import org.w3c.dom.Element;

public class XmlGenerator {

    Document document = null;
    Element root = null;

    private void generateXml() {

        try {

            DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();

            document = documentBuilderFactory.newDocumentBuilder().newDocument();

            root = document.createElement("FlyBoy");
            document.appendChild(root);

            Element learJet = document.createElement("learJet");
            learJet.setTextContent("CL-215");
            root.appendChild(learJet);

            Element rank = document.createElement("rank");
            rank.setTextContent("2");
            root.appendChild(rank);

            Element flyBoy1 = renderFlyBoy(root, "Mark II", "1");
            Element flyBoy2 = renderFlyBoy(flyBoy1, "Mark II4455", "2");
            Element flyBoy3 = renderFlyBoy(flyBoy2, "Mark II56666", "3");

            DOMSource domSource = new DOMSource(document);
            Transformer transformer = TransformerFactory.newInstance().newTransformer();
            transformer.setOutputProperty(OutputKeys.INDENT, "yes");
            transformer.setOutputProperty(OutputKeys.METHOD, "xml");
            StreamResult result = new StreamResult(new File("my.xml"));
            transformer.transform(domSource, result);

        } catch (ParserConfigurationException | TransformerFactoryConfigurationError | TransformerException e) {
            e.printStackTrace();
        }
    }

    /**
     * Render flyboy
     * 
     */
    private Element renderFlyBoy(Element parent, String viper, String rank) {

        Element flyBoyEl = document.createElement("FlyBoy");
        parent.appendChild(flyBoyEl);

        Element viperEl = document.createElement("viper");
        viperEl.setTextContent(viper);
        flyBoyEl.appendChild(viperEl);

        Element rankEl = document.createElement("rank");
        rankEl.setTextContent(rank);
        flyBoyEl.appendChild(rankEl);

        return flyBoyEl;

    }

    // Test
    public static void main(String[] args) {
        XmlGenerator ob = new XmlGenerator();
        try {
            ob.generateXml();
            System.out.println("done...");

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

下面是使用此代码生成的xml,

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<FlyBoy>
    <learJet>CL-215</learJet>
    <rank>2</rank>
    <FlyBoy>
        <viper>Mark II</viper>
        <rank>1</rank>
        <FlyBoy>
            <viper>Mark II4455</viper>
            <rank>2</rank>
            <FlyBoy>
                <viper>Mark II56666</viper>
                <rank>3</rank>
            </FlyBoy>
        </FlyBoy>
    </FlyBoy>
</FlyBoy>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用xPath从xml文件创建Java对象

来自分类Dev

使用Java根据条件创建新的xml文件

来自分类Dev

Java创建并写入XML文件

来自分类Dev

使用XmlWriter创建xml文件

来自分类Dev

使用PHP创建XML文件

来自分类Dev

使用SSJS创建xml文件

来自分类Dev

使用PHP创建xml文件

来自分类Dev

使用预期的 XML 从 XML 创建 XSL 文件

来自分类Dev

使用R从CSV文件创建xml文件

来自分类Dev

使用 BeautifulSoup 使用 XML 文件创建 JSON

来自分类Dev

使用Java创建CSV文件

来自分类Dev

如何使用特殊字符创建XML文件

来自分类Dev

无法使用jdom创建xml文件

来自分类Dev

使用bash脚本创建XML文件

来自分类Dev

使用DataContractJsonSerializer创建Non XML Json文件

来自分类Dev

读取使用Chilkat创建的xml文件

来自分类Dev

使用python创建/解析xml文件

来自分类Dev

使用python创建XML文件吗?

来自分类Dev

如何使用Gradle从项目文件(* .java,*。js,*,xml等)创建源JAR?

来自分类Dev

使用XSLT创建多个XML文件和文件夹

来自分类Dev

如何使用Java DOM创建XML节点?

来自分类Dev

使用JAXB从Java对象创建xml

来自分类Dev

使用JAXB从Java对象创建xml

来自分类Dev

使用Java创建客户端文件

来自分类Dev

使用IntelliJ IDEA创建Java库文件

来自分类Dev

使用Java保留文件创建时间

来自分类Dev

使用Java创建稀疏文件的NTFS

来自分类Dev

从XML文件创建集群

来自分类Dev

从XML文件创建节点对