如何在Java中生成xml?

时间:2012-04-22 10:09:03

标签: java xml sax

请告诉我,如何用Java生成XML? 我找不到任何使用SAX框架的例子。

6 个答案:

答案 0 :(得分:2)

尝试Xembly,这是一个小型开源库,它使用“流畅”的界面包装本机Java DOM:

String xml = new Xembler(
  new Directives()
    .add("root")
    .add("order")
    .attr("id", "553")
    .set("$140.00")
).xml();

将生成:

<root>
  <order id="553">$140.00</order>
</root>

答案 1 :(得分:1)

SAX是一个用Java解析现有XML文件的库。它不是用Java创建新的XML文件。如果你想这样做,可以使用像DOM4J这样的库来创建XML树,然后将其写入文件。

答案 2 :(得分:1)

答案 3 :(得分:1)

如果您想轻松地将您的Java对象映射/转换为XML,您还可以使用JAXBSimpleXMLXStream等库。

假设我们有一个简单的实体/ pojo - Item。可以使用简单的注释将pojo类的属性作为XML的元素或属性。

@Entity @Root public class Item {

@Attribute
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;

@Transient
@ManyToOne
private Order order;

@Element
private String product;

@Element
private double price;

@Element
private int quantity; }

要从此项生成XML,代码可以是

Serializer serializer=new Persister();//SimpleXML serializer
    Item itemToSerializeToXml=new Item(2456L, "Head First Java", 250.00,10);//Object to be serialized
    StringWriter destinationXMLWriter=new StringWriter();//Destination of XML
    serializer.write(itemToSerializeToXml,destinationXMLWriter);//Call to serialize the POJO to XML
    System.out.println(destinationXMLWriter.toString()); 

答案 4 :(得分:1)

使用dom4j,这是 dom4j

的快速入门

dom4j guide

答案 5 :(得分:0)

我在https://github.com/jmurty/java-xmlbuilder的GitHub上找到了一个很好的XML创建库。至少对于简单文档来说真的很好(我没有机会将它用于大于十几行的任何东西)。

这个库的好处是它的每个命令(即创建属性,创建元素等)都有3个级别的缩写。例如,要将标记<foo>添加到文档,您可以使用以下方法:

  • .e("foo")(单字母表格)
  • .elem("foo"(4个字母的形式)
  • .element("foo")(完全拼写的表格)

这允许使用更长和更简短的代码来创建XML,因此它非常适合各种编码样式。