2012-04-22 3 views
3

Пожалуйста, скажите, как сгенерировать XML в Java? Я не нашел ни одного примера, использующего структуру SAX.Как сгенерировать xml в Java?

+1

Что вам нужно? Прочитайте xml-файл из java или создайте XML-файл из java? – dash1e

+0

Создайте файл xml из java. –

+1

Возможный дубликат [Генерация XML с использованием SAX и Java] (http://stackoverflow.com/questions/4898590/generating-xml-using-sax-and-java) – svick

ответ

1

SAX - это библиотека для анализа существующих файлов XML с помощью Java. Это не для создания нового XML-файла из Java. Если вы хотите сделать это, используйте библиотеку, такую ​​как DOM4J, чтобы создать дерево XML, а затем записать его в файл.

1

Вы также можете использовать библиотеки как JAXB или SimpleXML или XStream, если вы хотите, чтобы легко отобразить/преобразовать объекты Java в XML.

Скажем, у нас есть простой объект/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()); 
+2

Пример кода и опыта, возможно? –

+1

Сгенерированный код XML: ' Глава первая Java 250.0 ' –

+1

Не компилируется, так как ни одна из аннотаций не определена. –

2

Try 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> 
+0

Благодарим за сообщение. Хотя это не встроенная библиотека, интересный совет. –

0

Я нашел хорошую библиотеку для создания XML на GitHub в https://github.com/jmurty/java-xmlbuilder. Действительно полезно для простых документов, по крайней мере (у меня не было возможности использовать его для чего-либо большего, чем около дюжины строк).

Полезная вещь в этой библиотеке заключается в том, что каждая из ее команд (т. Е. Создает атрибут, создает элемент и т. Д.) Имеет 3 уровня аббревиатур. Например, чтобы добавить тег <foo> к документу вы можете использовать следующие методы:

  • .e("foo") (однобуквенный форма)
  • .elem("foo" (4 форме письма)
  • .element("foo") (полностью произносимой форму)

Это позволяет создавать XML, используя как более длинный,

Смежные вопросы