返回首页
当前位置: 主页 > 编程语言 > XML教程 >

Java DOM解析器-创建XML文档

时间:2020-07-22 13:25来源:电脑教程学习网 www.etwiki.cn 编辑:小山哥

示范范例

这是我们需要创建的XML-

<?xml version = "1.0" encoding = "UTF-8" standalone = "no"?>
<cars>
   <supercars company = "Ferrari">
      <carname type = "formula one">Ferrari 101</carname>
      <carname type = "sports">Ferrari 202</carname>
   </supercars>
</cars>

CreateXmlFileDemo.java

现场演示
package com.tutorialspoint.xml;

import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
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.Attr;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import java.io.File;

public class CreateXmlFileDemo {

   public static void main(String argv[]) {

      try {
         DocumentBuilderFactory dbFactory =
         DocumentBuilderFactory.newInstance();
         DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
         Document doc = dBuilder.newDocument();
         
         // root element
         Element rootElement = doc.createElement("cars");
         doc.appendChild(rootElement);

         // supercars element
         Element supercar = doc.createElement("supercars");
         rootElement.appendChild(supercar);

         // setting attribute to element
         Attr attr = doc.createAttribute("company");
         attr.setValue("Ferrari");
         supercar.setAttributeNode(attr);

         // carname element
         Element carname = doc.createElement("carname");
         Attr attrType = doc.createAttribute("type");
         attrType.setValue("formula one");
         carname.setAttributeNode(attrType);
         carname.appendChild(doc.createTextNode("Ferrari 101"));
         supercar.appendChild(carname);

         Element carname1 = doc.createElement("carname");
         Attr attrType1 = doc.createAttribute("type");
         attrType1.setValue("sports");
         carname1.setAttributeNode(attrType1);
         carname1.appendChild(doc.createTextNode("Ferrari 202"));
         supercar.appendChild(carname1);

         // 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:\\cars.xml"));
         transformer.transform(source, result);
         
         // Output to console for testing
         StreamResult consoleResult = new StreamResult(System.out);
         transformer.transform(source, consoleResult);
      } catch (Exception e) {
         e.printStackTrace();
      }
   }
}

这将产生以下结果-

<?xml version = "1.0" encoding = "UTF-8" standalone = "no"?>

<cars>
   <supercars company = "Ferrari">
      <carname type = "formula one">Ferrari 101</carname>
      <carname type = "sports">Ferrari 202</carname>
   </supercars>
</cars>
------分隔线----------------------------
标签(Tag):
------分隔线----------------------------
推荐内容
  • Java DOM解析器-解析XML文档

    使用JDOM的步骤 以下是使用JDOM Parser解析文档时使用的步骤。 导入与XML相关的包。 ...

  • Java DOM分析器-概述

    文档对象模型(DOM)是万维网联盟(W3C)的官方推荐。 它定义了一个接口,使程序可以...

  • Java XML-解析器

    XML解析是指遍历XML文档以访问或修改数据。 什么是XML解析器? XML分析器提供了一种访...

  • ebXML-术语

    本章提供ebXML规范中使用的大多数术语的定义。 您肯定已经在前几章中看到了许多内容,...

  • ebXML-摘要

    本简短的教程介绍了ebXML及其各种元素的基...

  • ebXML-使用示例

    下图显示了ebXML场景,这使您很容易理解ebXML的概念。 该示例取自《技术体系结构规范...

猜你感兴趣