Класс Transformer
- java.lang.Object
-
- javax.xml.transform.Transformer
public abstract class Transformer extends Object
Экземпляр этого абстрактного класса может преобразовать дерево исходного документа в дерево результата.
Экземпляр этого класса можно получить с помощью метода TransformerFactory.newTransformer. Этот экземпляр затем может быть использован для обработки XML из различных источников и записи выходных данных преобразования в различные стоки.
Объект этого класса не может быть использован в нескольких потоках, выполняемых одновременно. Разные Transformer могут использоваться одновременно разными потоками.
Один Transformer может быть использован несколько раз. Параметры и свойства вывода сохраняются между преобразованиями.
- Since:
- 1.4
Конструкторы
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Transformer() |
Конструктор по умолчанию защищен преднамеренно. |
Методы
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract void |
clearParameters() |
Очистить все параметры, установленные с помощью setParameter. |
abstract ErrorListener |
getErrorListener() |
Получить обработчик событий ошибок, действующий для преобразования. |
abstract Properties |
getOutputProperties() |
Получить копию свойств вывода для преобразования. |
abstract String |
getOutputProperty(String name) |
Получить свойство вывода, действующее для преобразователя. |
abstract Object |
getParameter(String name) |
Получить параметр, который был явно задан с помощью setParameter. |
abstract URIResolver |
getURIResolver() |
Получить объект, который будет использоваться для разрешения URI, используемых в document(). |
void |
reset() |
Сбросить этот |
abstract void |
setErrorListener(ErrorListener listener) |
Установить обработчик событий ошибок, действующий для преобразования. |
abstract void |
setOutputProperties(Properties oformat) |
Установить свойства вывода для преобразования. |
abstract void |
setOutputProperty(String name,
String value) |
Установить свойство вывода, которое будет действовать для преобразования. |
abstract void |
setParameter(String name,
Object value) |
Добавить параметр для преобразования. |
abstract void |
setURIResolver(URIResolver resolver) |
Установить объект, который будет использоваться для разрешения URI, используемых в document(). |
abstract void |
transform(Source xmlSource,
Result outputTarget) |
Преобразовать XML |
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Конструкторы
Transformer
protected Transformer()
Конструктор по умолчанию защищен преднамеренно.
Методы
reset
public void reset()
Сбросьте эту Transformer до её исходной конфигурации.
Transformer сброшен до состояния, в котором он был создан с помощью TransformerFactory.newTransformer(), TransformerFactory.newTransformer(Source source) или Templates.newTransformer(). reset() предназначен для повторного использования существующих Transformer , экономя ресурсы, связанные с созданием новых Transformer.
Сброшенный Transformer не гарантирует, что у него будут такие же URIResolver или ErrorListener Object , например, Object.equals(Object obj). Гарантируется, что у него будут функционально эквивалентные URIResolver и ErrorListener.
- Throws:
-
UnsupportedOperationException- Когда реализация не переопределяет этот метод. - Since:
- 1.5
transform
public abstract void transform(Source xmlSource,
Result outputTarget)
throws TransformerException Преобразуйте XML Source в Result. Конкретное поведение преобразования определяется настройками TransformerFactory , действующими при создании Transformer и любыми изменениями в экземпляре Transformer.
Пустой Source представлен как пустой документ, созданный с помощью DocumentBuilder.newDocument(). Результат преобразования пустого Source зависит от поведения преобразования; он не всегда является пустым Result.
- Parameters:
-
xmlSource- Входной XML для преобразования. -
outputTarget-ResultпреобразованияxmlSource. - Throws:
-
TransformerException- Если во время преобразования происходит непреодолимая ошибка.
setParameter
public abstract void setParameter(String name,
Object value) Добавить параметр для преобразования.
Передайте квалифицированное имя как строку из двух частей: URI пространства имён в фигурных скобках ({}), за которым следует локальное имя. Если у имени нет URL, строка содержит только локальное имя. Приложение может безопасно проверить наличие URI, проверив, является ли первый символ имени символом '{'.
Например, если URI и локальное имя были получены из элемента, определённого с помощью <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/>, то квалифицированным именем будет "{http://xyz.foo.com/yada/baz.html}foo". Обратите внимание, что префикс не используется.
- Parameters:
-
name- Имя параметра, которое может начинаться с URI пространства имён в фигурных скобках ({}). -
value- Объект значения. Это может быть любой допустимый Java-объект. Обработчик должен предоставить соответствующую кодировку объектов или просто передать объект для использования в расширении. - Throws:
-
NullPointerException- Если значение равно null.
getParameter
public abstract Object getParameter(String name)
Получить параметр, который был явно задан с помощью setParameter.
Этот метод не возвращает значение параметра по умолчанию, которое нельзя определить до тех пор, пока контекст узла не будет оценён во время процесса преобразования.
- Parameters:
-
name-Objectполучить - Returns:
- Параметр, который был задан с помощью setParameter.
clearParameters
public abstract void clearParameters()
Очистить все параметры, заданные с помощью setParameter.
setURIResolver
public abstract void setURIResolver(URIResolver resolver)
Установить объект, который будет использоваться для разрешения URI, используемых в document().
Если аргумент resolver равен null, значение URIResolver будет очищено, и у преобразователя больше не будет разрешителя.
- Parameters:
-
resolver- Объект, реализующий интерфейс URIResolver, или null.
getURIResolver
public abstract URIResolver getURIResolver()
Получить объект, который будет использоваться для разрешения URI, используемых в document().
- Returns:
- Объект, реализующий интерфейс URIResolver, или null.
setOutputProperties
public abstract void setOutputProperties(Properties oformat)
Установить свойства вывода для преобразования. Эти свойства переопределяют свойства, установленные в шаблонах с помощью xsl:output.
Если аргумент этой функции равен null, все ранее установленные свойства удаляются, и значение вернётся к значению, определённому в объекте шаблонов.
Передайте квалифицированное имя свойства как строку из двух частей: URI пространства имён в фигурных скобках ({}), за которым следует локальное имя. Если у имени нет URL, строка содержит только локальное имя. Приложение может безопасно проверить наличие URI, проверив, является ли первый символ имени символом '{'.
Например, если URI и локальное имя были получены из элемента, определённого с помощью <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/>, то квалифицированным именем будет "{http://xyz.foo.com/yada/baz.html}foo". Обратите внимание, что префикс не используется.
Бросается исключение IllegalArgumentException, если любые ключи аргументов не распознаются и не имеют квалификации пространства имён.
- Parameters:
-
oformat- Набор свойств вывода, которые будут использоваться для переопределения любых таких же свойств, действующих для преобразования. - Throws:
-
IllegalArgumentException- Когда ключи не распознаны и не имеют квалификации пространства имён. - See Also:
-
OutputKeys,Properties
getOutputProperties
public abstract Properties getOutputProperties()
Получить копию свойств вывода для преобразования.
Возвращаемые свойства должны содержать свойства, установленные пользователем, и свойства, установленные стилизованным файлом, и эти свойства по умолчанию установлены по умолчанию, заданные разделом 16 спецификации XSLT (XSLT) W3C. Свойства, которые были явно установлены пользователем или стилизованным файлом, должны быть в списке свойств base, а свойства XSLT по умолчанию, которые не были явно установлены, должны быть в списке свойств по умолчанию. Таким образом, getOutputProperties().getProperty(String key) получит любое свойство, которое было установлено с помощью setOutputProperty(java.lang.String, java.lang.String), setOutputProperties(java.util.Properties), в стилизованном файле или в свойствах по умолчанию, в то время как getOutputProperties().get(String key) получит только свойства, которые были явно установлены с помощью setOutputProperty(java.lang.String, java.lang.String), setOutputProperties(java.util.Properties) или в стилизованном файле.
Обратите внимание, что изменения в объекте Properties не повлияют на свойства, которые содержит преобразователь.
Если любые из ключей аргументов не распознаны и не имеют квалификации пространства имён, свойство будет проигнорировано и не будет возвращено. Другими словами, поведение не ортогонально setOutputProperties.
- Returns:
- Копия набора свойств вывода, действующих при следующем преобразовании.
- See Also:
-
OutputKeys,Properties, XSL Transformations (XSLT) Версия 1.0
setOutputProperty
public abstract void setOutputProperty(String name,
String value)
throws IllegalArgumentException Установить свойство вывода, которое будет действовать во время преобразования.
Передайте квалифицированное имя свойства как строку из двух частей: URI пространства имён в фигурных скобках ({}), за которым следует локальное имя. Если у имени нет URL, строка содержит только локальное имя. Приложение может безопасно проверить наличие URI, проверив, является ли первый символ имени символом '{'.
Например, если URI и локальное имя были получены из элемента, определённого с помощью <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/>, то квалифицированным именем будет "{http://xyz.foo.com/yada/baz.html}foo". Обратите внимание, что префикс не используется.
Объект Properties, переданный в setOutputProperties(java.util.Properties), не будет затронут вызовом этого метода.
- Parameters:
-
name- Непустая строка, которая указывает имя свойства вывода, которое может быть квалифицировано по пространству имён. -
value- Непустая строковое значение свойства вывода. - Throws:
-
IllegalArgumentException- Если свойство не поддерживается и не квалифицировано с помощью пространства имён. - See Also:
OutputKeys
getOutputProperty
public abstract String getOutputProperty(String name)
throws IllegalArgumentException Получить свойство вывода, действующее для преобразователя.
Если свойство было установлено с помощью setOutputProperty(java.lang.String, java.lang.String), будет возвращено это значение. В противном случае, если свойство явно указано в стилизованном файле, будет возвращено это значение. Если значение свойства установлено по умолчанию, то есть, если оно не установлено явно ни с помощью setOutputProperty(java.lang.String, java.lang.String), ни в стилизованном файле, результат может отличаться в зависимости от реализации и входного стилизованного файла.
- Parameters:
-
name- Непустая строка, которая указывает имя свойства вывода, которое может быть квалифицировано по пространству имён. - Returns:
- Строковое значение свойства вывода или null, если свойство не найдено.
- Throws:
-
IllegalArgumentException- Если свойство не поддерживается. - See Also:
OutputKeys
setErrorListener
public abstract void setErrorListener(ErrorListener listener)
throws IllegalArgumentException Установить обработчик событий об ошибках, действующий во время преобразования.
- Parameters:
-
listener- Новый обработчик ошибок. - Throws:
-
IllegalArgumentException- если обработчик равен null.
getErrorListener
public abstract ErrorListener getErrorListener()
Получить обработчик событий об ошибках, действующий во время преобразования. Реализации должны предоставлять обработчик ошибок по умолчанию.
- Returns:
- Текущий обработчик ошибок, который не должен быть равен null.
© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/11/docs/api/java.xml/javax/xml/transform/Transformer.html