java.lang.Object
javax.xml.transform.stream.StreamSource
- 所有已实现的接口:
-
Source
充当转换源的持有者,以XML标记流的形式呈现。
注意: 由于内部使用Reader
或InputStream
实例,StreamSource
实例只能使用一次。
- 自版本:
- 1.4
-
Field Summary
Modifier and TypeFieldDescriptionstatic final String
如果通过此值作为参数调用TransformerFactory.getFeature(java.lang.String)
返回true,则Transformer支持此类型的Source输入。 -
Constructor Summary
ConstructorDescription无参数默认构造函数。StreamSource
(File f) 从文件构造StreamSource。StreamSource
(InputStream inputStream) 从字节流构造StreamSource。StreamSource
(InputStream inputStream, String systemId) 从字节流构造StreamSource。StreamSource
(Reader reader) 从字符读取器构造StreamSource。StreamSource
(Reader reader, String systemId) 从字符读取器构造StreamSource。StreamSource
(String systemId) 从URL构造StreamSource。 -
Method Summary
Modifier and TypeMethodDescription获取使用setByteStream设置的字节流。获取使用setPublicId设置的公共标识符。获取使用setReader设置的字符流。获取使用setSystemId设置的系统标识符。boolean
isEmpty()
指示StreamSource
对象是否为空。void
setInputStream
(InputStream inputStream) 设置要用作输入的字节流。void
setPublicId
(String publicId) 设置此Source的公共标识符。void
设置输入为字符读取器。void
setSystemId
(File f) 从文件引用设置系统标识符。void
setSystemId
(String systemId) 设置此Source的系统标识符。
-
Field Details
-
FEATURE
如果通过此值作为参数调用TransformerFactory.getFeature(java.lang.String)
返回true,则Transformer支持此类型的Source输入。- 参见:
-
-
Constructor Details
-
StreamSource
public StreamSource()无参数默认构造函数。如果使用此构造函数,并且未使用
setInputStream(java.io.InputStream inputStream)
或setReader(java.io.Reader reader)
设置Stream源,则Transformer
将使用new InputStream()
创建一个空的源InputStream
。- 参见:
-
StreamSource
从字节流构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。如果此构造函数用于处理样式表,则通常还应调用setSystemId,以便可以解析相对URI引用。
- 参数:
-
inputStream
- 指向XML流的有效InputStream引用。
-
StreamSource
从字节流构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。此构造函数允许设置systemID以及输入流,这允许处理相对URI。
- 参数:
-
inputStream
- 指向XML流的有效InputStream引用。 -
systemId
- 必须是符合URI语法的字符串。
-
StreamSource
从字符读取器构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。然而,在许多情况下,输入流的编码已经解析,例如从StringReader读取XML的情况。- 参数:
-
reader
- 指向XML字符流的有效Reader引用。
-
StreamSource
从字符读取器构造StreamSource。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。然而,在许多情况下,输入流的编码已经解析,例如从StringReader读取XML的情况。- 参数:
-
reader
- 指向XML字符流的有效Reader引用。 -
systemId
- 必须是符合URI语法的字符串。
-
StreamSource
从URL构造StreamSource。- 参数:
-
systemId
- 必须是符合URI语法的字符串。
-
StreamSource
从文件构造StreamSource。- 参数:
-
f
- 必须是非空的File引用。
-
-
Method Details
-
setInputStream
设置要用作输入的字节流。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。如果此Source对象用于处理样式表,则通常还应调用setSystemId,以便可以解析相对URL引用。
- 参数:
-
inputStream
- 指向XML流的有效InputStream引用。
-
getInputStream
获取使用setByteStream设置的字节流。- 返回:
- 使用setByteStream设置的字节流,如果未调用setByteStream或ByteStream构造函数,则返回null。
-
setReader
设置输入为字符读取器。通常应使用流而不是读取器,以便XML解析器可以解析XML声明中指定的字符编码。然而,在许多情况下,输入流的编码已经解析,例如从StringReader读取XML的情况。- 参数:
-
reader
- 指向XML字符流的有效Reader引用。
-
getReader
获取使用setReader设置的字符流。- 返回:
- 使用setReader设置的字符流,如果未调用setReader或Reader构造函数,则返回null。
-
setPublicId
设置此Source的公共标识符。公共标识符始终是可选的:如果应用程序编写者包含一个,它将作为位置信息的一部分提供。
- 参数:
-
publicId
- 公共标识符作为字符串。
-
getPublicId
获取使用setPublicId设置的公共标识符。- 返回:
- 使用setPublicId设置的公共标识符,如果未调用setPublicId,则返回null。
-
setSystemId
设置此Source的系统标识符。如果存在字节流或字符流,则系统标识符是可选的,但仍然很有用,因为应用程序可以使用它来解析相对URI,并可以将其包含在错误消息和警告中(如果没有指定字节流或字符流,则解析器将尝试打开与URI的连接)。
- 在接口中指定:
-
setSystemId
在接口Source
中 - 参数:
-
systemId
- 系统标识符作为URL字符串。
-
getSystemId
获取使用setSystemId设置的系统标识符。- 在接口中指定:
-
getSystemId
在接口Source
中 - 返回:
- 使用setSystemId设置的系统标识符,如果未调用setSystemId,则返回null。
-
setSystemId
从文件引用设置系统标识符。- 参数:
-
f
- 必须是非空的File引用。
-
isEmpty
public boolean isEmpty()指示StreamSource
对象是否为空。空定义如下:- 所有输入源,包括公共标识符、系统标识符、字节流和字符流,都为
null
。 - 公共标识符和系统标识符为
null
,字节流和字符流为null
或不包含字节或字符。请注意,如果提供了字节流,则此方法将重置字节流,如果未提供字节流,则将重置字符流。
在检查字节或字符流时出现错误时,该方法将返回false,以允许XML处理器处理错误。
- 所有输入源,包括公共标识符、系统标识符、字节流和字符流,都为
-