Средства преобразования для потоков ввода-вывода
Средства преобразования для потоков ввода-вывода определены в классах StreamSource и StreamResult пакета javax.xml.transform.stream.
Класс StreamSource действует как хранилище для источника преобразования в виде потока разметки XML.
Конструкторы класса
public StreamSource()
public StreamSource(File f)
public StreamSource(InputStream inputStream)
public StreamSource(InputStream inputStream,
String systemId)
public StreamSource(Reader reader)
public StreamSource(Reader reader, String systemId)
public StreamSource(String systemId)
создают соответственно пустой входной поток, входной поток из файла, байтовый входной поток, байтовый входной поток с заданного системного идентификатора, символьный входной поток, символьный входной поток с заданного системного идентификатора, и, наконец, входной поток с заданного системного идентификатора.
В классе StreamSource задано поле
public static final String FEATURE.
Если метод getFeature() класса TransformerFactory возвращает true для значения FEATURE, указанного в качестве аргумента метода, то объект Transformer, поддерживает входной источник данного типа.
Методы класса позволяют получить или установить источники входного потока.
Так, методы
public InputStream getInputStream()
public void setInputStream(InputStream inputStream)
получают и устанавливают байтовый входной поток для источника, а методы
public Reader getReader()
public void setReader(Reader reader)
выполняют те же операции для символьного потока.
Методы
public String getPublicId()
public void setPublicId(String publicId)
получают и устанавливают общедоступный идентификатор для источника, а методы
public String getSystemId()
public void setSystemId(String systemId)
выполняют те же операции для системного идентификатора.
Метод
public void setSystemId(File f)
позволяет получить системный идентификатор из ссылки на файл
Класс StreamResult действует как хранилище для результата преобразования, который может быть документом XML или HTML, либо текстовым документом.
Конструкторы класса
public StreamResult()
public StreamResult(File f)
public StreamResult(OutputStream outputStream)
public StreamResult(String systemId)
public StreamResult(Writer writer)
создают соответственно пустой выходной поток, входной поток в файл, байтовый выходной поток, выходной поток в заданный системный идентификатор или символьный выходной поток.
В классе StreamResult задано поле
public static final String FEATURE.
Если метод getFeature() класса TransformerFactory возвращает true для значения FEATURE, указанного в качестве аргумента метода, то объект Transformer, поддерживает выходной адресат данного типа.
Методы класса позволяют получить или установить адресаты выходного потока.
Так, методы
public OutputStream getOutputStream()
public void setOutputStream(OutputStream outputStream)
получают и устанавливают байтовый выходной поток для адресата, а методы
public Writer getWriter()
public void set Writer(Writer writer)
выполняют те же операции для символьного выходного потока.
Методы
public String getSystemId()
public void setSystemId(String systemId)
получают и устанавливают общедоступный идентификатор для адресата, а метод
public void setSystemId(File f)
позволяет получить системный идентификатор из ссылки на файл.
Примеры вывода документов XML:
1. Вывод документа newEmailDoc в файл newemail.xml:
// Создание объекта TransformerFactory
TransformerFactory transXMLFactory =
TransformerFactory.newInstance() ;
// Создание объекта Transformer
Transformer XMLTransformer =
transXMLFactory.newTransformer();
// Создание объекта DOMSource
DOMSource sourceXML = new DOMSource(newEmailDoc);
// Создание объекта File
File newXMLFile = new File("newemail.xml");
// Создание объекта FileOutputStream
FileOutputStream newEmailOutput =
new FileOutputStream(newXMLFile);
// Создание объекта StreamResult
StreamResult resultXML = new StreamResult(newEmailOutput);
// Выполнение преобразования из DOMSource в
// StreamResult и вывод результата в файл newemail.xml
XMLTransformer.transform(sourceXML, resultXML);
2. Вывод содержимого документа email1Doc на экран:
// Создание объекта TransformerFactory
TransformerFactory transStringFactory =
TransformerFactory.newInstance() ;
// Создание объекта Transformer
Transformer stringTransformer =
transStringFactory.newTransformer();
// Создание объекта DOMSource
DOMSource sourceStringXML = new DOMSource(email1Doc);
// Создание объекта StringWriter
StringWriter outputXMLString = new StringWriter();
// Создание объекта StreamResult
StreamResult resultStringXML =
new StreamResult(outputXMLString);
// Выполнение преобразования из DOMSource в
// StreamResult и вывод результата в outputXMLString
stringTransformer.transform(sourceStringXML,
resultStringXML);
// Преобразование результата в строку
String newEmailString = outputXMLString.toString();
// Вывод документа на экран
System.out.println("Новый документ XML:\n " +
newEmailString);
Дата добавления: 2015-03-20; просмотров: 693;