Проект Apache XML: Xerces-J - включает пакет org.apache.xml.serialize для записи объектов Document DOM в выходной поток. Хотя этот класс связан с Xerces, он работает с любой реализацией DOM Level 2. Здесь нет зависимости от деталей реализации классов Xerces, а только от стандартных интерфейсов DOM.
Механизм сериализации документа с помощью org.apache.xml.serialize таков:
- Сконфигурировать объект OutputFormat с теми параметрами сериализации, которые вам нужны.
- Соединить OutputStream с местом, в котором вы хотите хранить данные.
- Использовать OutputStream и OutputFormat для создания нового объекта XMLSerializer.
- Передать объект Document, который вы хотите сериализировать, в метод serialize() от XMLSerializer.
Вот пример, который примет tij_menu.xml и сериализует его в System.out:
import
org.apache.xerces.parsers.DOMParser;
import
org.apache.xml.serialize.XMLSerializer;
import
org.apache.xml.serialize.OutputFormat;
import
org.w3c.dom.Document;
public class
menuSerializer
{
static public
void
main
(
String
[]
argv
) {
try
{
// Xerces Parser
DOMParser parser =
new
DOMParser
()
;
parser.parse
(
"file:tij_menu.xml"
)
;
Document doc = parser.getDocument
()
;
// serialize document
OutputFormat format =
new
OutputFormat
(
doc
)
;
XMLSerializer output =
new
XMLSerializer
(
System.out, format
)
;
output.serialize
(
doc
)
;
}
catch
(
Exception e
) {
e.printStackTrace
()
;
}
}
}
XMLSerializer имеет несколько конструкторов, которые вы можете использовать в зависимости от того, хотите ли вы записывать в OutputStream или во Writer и хотите ли вы предоставлять OutputFormat во время создания сериализующего объекта:
public
XMLSerializer
()
;
public
XMLSerializer
(
OutputFormat format
)
;
public
XMLSerializer
(
Writer out, OutputFormat format
)
;
public
XMLSerializer
(
OutputStream out, OutputFormat format
)
;
Вы можете, вероятно, определить формат и поток или Writer, когда вы конструируете XMLSerializer. Вы также можете изменить их с помощью таких методов:
public
void
setOutputFormat
(
OutputFormat format
)
;
public
void
setOutputByteStream
(
OutputStream out
)
;
public
void
setOutputCharStream
(
Writer out
)
;
← | Сериализация XML | Сериализация DOM Level 3 | → |