Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > создание XML файла


Автор: Guest 11.11.2005, 15:53
как в java-приложении сосздать XML файл и вывести в него, скажем, фамилию, имя, отчество.

Автор: batigoal 11.11.2005, 17:19
1. Можно вручную...
2. ...но лучше, конечно, воспользоваться инструментами работы с XML. Построить DOM-модель, и одним легким движением скинуть ее в файл. Вот только пример писать сейчас не могу, поищи сам.

Автор: allex 11.11.2005, 18:03
Lamer George
По-моему, строить дерево, а затем его выводить, сложнее, чем выводить текст. Конечно, вывод текста не гарантирует корректность получившегося XML, но код получается весьма наглядный, ошибок мало, да и те вылавливаются быстро.
Я бы деревья строил только как результат трансформации, а в остальных случаях выводил по шаблону.

Автор: LSD 11.11.2005, 21:45
DOM не самая простая и удобная модель, универсальная да, но вот сложность ее...
Если формат данных известен и не шибко наворочен, можно воспользоваться JAXB. Работать с ним одно удовольствие. Работаем с объектами Java, а затем легким движением руки делаем из них XML, и другим движением делаем объекты Java. Единственное но (для кого-то это плюс, для кого-то минус), XML должен соответсвовать XML-схеме.

Автор: KostenkoSergey 13.11.2005, 12:50
Код

// --- строишь документ
    org.apache.xerces.dom.DocumentImpl doc = new org.apache.xerces.dom.DocumentImpl();
    org.w3c.dom.Element fio = doc.createElement("fio");
    fio.appendChild(doc.createTextNode("Костенко Сергей"));
    doc.appendChild(fio);
    // --- сериализуешь куда угодно :
    org.apache.xml.serialize.OutputFormat format = new org.apache.xml.serialize.OutputFormat(doc, "windows-1251", true );
    format.setIndenting(true);
    org.apache.xml.serialize.DOMSerializer serealizer = new org.apache.xml.serialize.XMLSerializer(System.out,format);
    serealizer.serialize(doc);
    System.out.println("ok :)");

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)