如何在java中以编程方式创建xml结构

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/20537374/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-13 02:36:26  来源:igfitidea点击:

how to create a xml structure programatically in java

javaxmlxml-parsing

提问by curious

i want to create a xml structure programatically in java

我想在java中以编程方式创建一个xml结构

the structure is like this

结构是这样的

<?xml version="1.0" encoding="UTF-8"?>
 <System token="com.test.dummy">
     <Parameter token="xyz">
        <Value>4</Value>
     </Parameter>
  </System>

i have to create a temporary file and then insert this data in the file. I am new to this area, can someone help me.

我必须创建一个临时文件,然后将这些数据插入到文件中。我是这个领域的新手,有人可以帮助我。

采纳答案by Deepak

Use DOMParserbest way to write xml in java

使用DOMParser最好的方式在java中编写xml

http://docs.oracle.com/cd/B13789_01/appdev.101/b12024/oracle/xml/parser/v2/DOMParser.html

http://docs.oracle.com/cd/B13789_01/appdev.101/b12024/oracle/xml/parser/v2/DOMParser.html

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

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

public class WriteXMLFile {

public static void main(String argv[]) {

  try {

    DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
    DocumentBuilder docBuilder = docFactory.newDocumentBuilder();

    // root elements
    Document doc = docBuilder.newDocument();
    Element rootElement = doc.createElement("company");
    doc.appendChild(rootElement);

    // staff elements
    Element staff = doc.createElement("Staff");
    rootElement.appendChild(staff);

    // set attribute to staff element
    Attr attr = doc.createAttribute("id");
    attr.setValue("1");
    staff.setAttributeNode(attr);

    // shorten way
    // staff.setAttribute("id", "1");

    // firstname elements
    Element firstname = doc.createElement("firstname");
    firstname.appendChild(doc.createTextNode("yong"));
    staff.appendChild(firstname);

    // lastname elements
    Element lastname = doc.createElement("lastname");
    lastname.appendChild(doc.createTextNode("mook kim"));
    staff.appendChild(lastname);

    // nickname elements
    Element nickname = doc.createElement("nickname");
    nickname.appendChild(doc.createTextNode("mkyong"));
    staff.appendChild(nickname);

    // salary elements
    Element salary = doc.createElement("salary");
    salary.appendChild(doc.createTextNode("100000"));
    staff.appendChild(salary);

    // write the content into xml file
    TransformerFactory transformerFactory = TransformerFactory.newInstance();
    Transformer transformer = transformerFactory.newTransformer();
    DOMSource source = new DOMSource(doc);
    StreamResult result = new StreamResult(new File("C:\file.xml"));

    // Output to console for testing
    // StreamResult result = new StreamResult(System.out);

    transformer.transform(source, result);

    System.out.println("File saved!");

  } catch (ParserConfigurationException pce) {
    pce.printStackTrace();
  } catch (TransformerException tfe) {
    tfe.printStackTrace();
  }
}
}

see this http://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/

看到这个http://www.mkyong.com/java/how-to-create-xml-file-in-java-dom/

回答by vicky

You can also use StringBuilderto form your xml struture. StringBuilderis light weight but does not know XML so doesn't validate structure at all.But its worth going for it because of its simplicity.

您还可以使用StringBuilder来形成您的 xml 结构。StringBuilder重量轻,但不了解 XML,因此根本不验证结构。但由于它的简单性,因此值得一试。

StringBuilder xmlBuilder = new StringBuilder("<?xml version="1.0" encoding="UTF-8"?>");
   xmlBuilder.append("<System token=\"com.test.dummy\">");
   xmlBuilder.append("<Parameter token=\"xyz\">").append("<Value>4</Value>");
   xmlBuilder.append("</Parameter>");
   xmlBuilder.append("</System>");
   xmlBuilder.toString();

You can also make your elements accept dynamic values. Make sure your xml document structure is correct

您还可以让您的元素接受动态值。确保您的 xml 文档结构正确