package com.example.TestApp;
import java.io.File;
import java.io.IOException;
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.Document;
import org.w3c.dom.Element;
public class CreateXMLFileJava {
public static void main(String[] args) throws ParserConfigurationException,
IOException,
TransformerException
{
// 1.Create a DocumentBuilder instance
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dbuilder = dbFactory.newDocumentBuilder();
// 2. Create a Document from the above DocumentBuilder.
Document document = dbuilder.newDocument();
// 3. Create the elements you want using the Element class and its appendChild method.
// root element
Element users = document.createElement("users");
document.appendChild(users);
// child element
Element user = document.createElement("user");
users.appendChild(user);
// Attribute of child element
user.setAttribute("uid", "1");
// firstname Element
Element firstName = document.createElement("firstName");
firstName.appendChild(document.createTextNode("Interview"));
user.appendChild(firstName);
// lastName element
Element lastName = document.createElement("lastName");
lastName.appendChild(document.createTextNode("Bubble"));
user.appendChild(lastName);
// email element
Element email = document.createElement("email");
email.appendChild(document.createTextNode("admin@interviewBubble.com"));
user.appendChild(email);
// write content into xml file
// 4. Create a new Transformer instance and a new DOMSource instance.
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(document);
// 5. Create a new StreamResult to the output stream you want to use.
StreamResult result = new StreamResult(new File("/Users/admin/Desktop/users.xml"));
// StreamResult result = new StreamResult(System.out); // to print on console
// 6. Use transform method to write the DOM object to the output stream.
transformer.transform(source, result);
System.out.println("File created successfully");
}
}
// Declare a projection
public interface Projection {
@XBWrite("/root/order/@id")
Projection setID(int id);
@XBWrite("/root/order")
Projection setValue(String value);
}
public static void main(String[] args) {
// create a projector
XBProjector projector = new XBProjector();
// use it to create a projection instance
Projection projection = projector.projectEmptyDocument(Projection.class);
// You get a fluent API, with java types in parameters
projection.setID(553).setValue("$140.00");
// Use the projector again to do IO stuff or create an XML-string
projector.toXMLString(projection);
}
8条答案
按热度按时间dtcbnfnu1#
您可以使用DOM XML解析器创建一个使用Java的XML文件。一个很好的例子可以在on this site中找到:
cx6n0qe32#
您可以使用Xembly,这是一个小型的开源库,它使XML创建过程更加直观:
Xembly是原生JavaDOM的 Package 器,是一个非常轻量级的库(我是作者)。
ua4mk5z43#
看看dom4j或jdom。这两个库都允许创建文档并允许将文档打印为xml。这两个库都被广泛使用,非常容易使用,你会发现很多示例和代码片段。
dom4j - Quick start guide
eimct9ow4#
碰巧也在做这方面的工作,使用https://www.tutorialspoint.com/java_xml/java_dom_create_document.htm的例子从这里,并阅读解释。同时我提供了我自己的例子:
这是在使用斯坦福大学的tokenizer for Natural Language Processing的背景下进行的,只是其中的一部分,目的是了解如何添加元素。Billbuyedapples(我从文件中读到过这句话)
btqmn9zl5#
我提供了一个答案,从我自己的blog。希望这将有所帮助。
将输出什么?
将创建以下名为users.xml的XML文件。
程序
使用DOM解析器创建XML文件的基本步骤如下:
1.创建一个
DocumentBuilder
示例。1.根据上述
DocumentBuilder
创建文档。1.使用
Element
类及其appendChild
方法创建所需的元素。1.创建一个新的
Transformer
示例和一个新的DOMSource
示例。1.为要使用的输出流创建一个新的
StreamResult
。1.使用
transform
方法将DOM对象写入输出流。源代码:
输出:
deikduxw6#
你可能想给予一试XStream,它并不复杂,它基本上完成了繁重的工作。
vvppvyoh7#
我喜欢Xembly语法,但它不是静态类型的API,您可以使用XMLBeam来实现这一点:
我的经验是,即使XML变得更加复杂,这也能很好地工作。您可以只将XML结构与Java代码结构解耦。
rekjcdws8#