java - 如何用 Java 构建 XML 信息集

标签 java xml

据我所知,java 可以解析 xml 文件并获取数据,但我也想知道如何创建 xml 节点并使用 java 插入值。

文件:myXML.xml

<parent>
    <start> 
       <id> 123 </id>
       <name> s1 </name>
       <value> hello </value>
    </start>
</parent>

我希望,每次需要插入数据时都创建这些节点 <id> <name> and <value> 。假设我想保存id = "456", name = "s2", value = "world"

文件:myXML.xml

<parent>
    <start> 
        <id> 123 </id>
        <name> s1 </name>
        <value> hello </value>
    </start>

    <start> 
        <id> 456 </id>
        <name> s2 </name>
        <value> world </value>
    </start>
</parent>

请让我知道使用 java 以及我是否需要使用 dtd

最佳答案

import java.io.*;
import javax.xml.parsers.*;
import org.w3c.dom.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;
import javax.xml.transform.dom.DOMSource;

public class Sample {
  public static void main (String[] args) {
    try {
      //Read and Parse 
      DocumentBuilderFactory dbfactory = DocumentBuilderFactory.newInstance();
      DocumentBuilder builder = dbfactory.newDocumentBuilder();
      Document doc = builder.parse(new File("MyXml.xml"));

      Element root = doc.getDocumentElement();
      //Add Element
      Element element_start = doc.createElement("start");
      Element element_id = doc.createElement("id");
      Text textContents = doc.createTextNode(" 456 ");
      element_id.appendChild(textContents);
      element_start.appendChild(element_id);
      Element element_name = doc.createElement("name");
      textContents = doc.createTextNode(" s2 ");
      element_name.appendChild(textContents);
      element_start.appendChild(element_name);
      Element element_value = doc.createElement("value");
      textContents = doc.createTextNode(" world ");
      element_value.appendChild(textContents);
      element_start.appendChild(element_value);
      root.appendChild(element_start);
      //Write
      DOMSource source = new DOMSource(doc);
      StreamResult out = new StreamResult(new File("MyXmlOut.xml"));
      TransformerFactory tff = TransformerFactory.newInstance();
      Transformer tf = tff.newTransformer();
      tf.transform(source, out);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

关于java - 如何用 Java 构建 XML 信息集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7803344/

相关文章:

java - 添加两个列表并以嵌套形式获取 XML 输出

php - 在 Php 中以带换行符的纯文本格式发送 XML 电子邮件

java - 如何确保maven安装在mac中

java - 如何验证MD5

sql - 从sql中的XML中选择全部

xml - 为什么这个基于XML布局的Android应用程序崩溃?

css - 如何在 Ruby 中验证 XHTML、ATOM 和 CSS?

java - JDBC 事务与连接说明

java - Button ActionListener 导致大量错误,我不知道为什么

java - 如何在 Java 中设置/赋予父节点其子节点、其子节点的子节点等等?