- java.lang.Object
-
- javax.xml.transform.stream.StreamSource
-
- 实现的所有接口
-
Source
public class StreamSourceextends Objectimplements Source
以XML标记流的形式充当转换源的持有者。
注意:由于它们内部使用
Reader
或InputStream
实例,因此StreamSource
实例只能使用一次。- 从以下版本开始:
- 1.4
-
-
字段汇总
字段 变量和类型 字段 描述 static String
FEATURE
如果将此值作为参数传递时TransformerFactory.getFeature(java.lang.String)
返回true,则Transformer支持此类型的Source输入。
-
构造方法摘要
构造方法 构造器 描述 StreamSource()
零参数默认构造函数。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。
-
方法摘要
所有方法 实例方法 具体的方法 变量和类型 方法 描述 InputStream
getInputStream()
获取使用setByteStream设置的字节流。String
getPublicId()
获取使用setPublicId设置的公共标识符。Reader
getReader()
获取使用setReader设置的字符流。String
getSystemId()
获取使用setSystemId设置的系统标识符。boolean
isEmpty()
指示StreamSource
对象是否为空。void
setInputStream(InputStream inputStream)
设置要用作输入的字节流。void
setPublicId(String publicId)
设置此Source的公共标识符。void
setReader(Reader reader)
将输入设置为字符阅读器。void
setSystemId(File f)
从文件引用中设置系统ID。void
setSystemId(String systemId)
设置此Source的系统标识符。
-
-
-
字段详细信息
-
FEATURE
public static final String FEATURE
如果TransformerFactory.getFeature(java.lang.String)
在将此值作为参数传递时返回true,则Transformer支持此类型的Source输入。- 另请参见:
- 常数字段值
-
-
构造方法详细信息
-
StreamSource
public StreamSource()
零参数默认构造函数。 如果此构造被使用,并且没有流源通过设置
setInputStream(java.io.InputStream inputStream)
或setReader(java.io.Reader reader)
,那么Transformer
将创建一个空的源代码InputStream
使用new InputStream()
。
-
StreamSource
public StreamSource(InputStream inputStream)
从字节流构造StreamSource。 通常,应该使用流而不是读取器,因此XML解析器可以解析XML声明指定的字符编码。如果使用此构造函数来处理样式表,则通常也应调用setSystemId,以便可以解析相对URI引用。
- 参数
-
inputStream
- 对XML流的有效InputStream引用。
-
StreamSource
public StreamSource(InputStream inputStream, String systemId)
从字节流构造StreamSource。 通常,应使用流而不是读取器,以便XML解析器可以解析XML声明指定的字符编码。除了输入流之外,此构造函数还允许设置systemID,从而允许处理相对URI。
- 参数
-
inputStream
- 对XML流的有效InputStream引用。 -
systemId
- 必须是符合URI语法的String。
-
StreamSource
public StreamSource(Reader reader)
从字符阅读器构造StreamSource。 通常,应使用流而不是读取器,以便XML解析器可以解析XML声明指定的字符编码。 但是,在许多情况下,输入流的编码已经解析,就像从StringReader读取XML一样。- 参数
-
reader
- 对XML字符流的有效Reader引用。
-
StreamSource
public StreamSource(Reader reader, String systemId)
从字符阅读器构造StreamSource。 通常,应该使用流而不是读取器,以便XML解析器可以解析XML声明指定的字符编码。 但是,在许多情况下,输入流的编码已经解析,就像从StringReader读取XML一样。- 参数
-
reader
- 对XML字符流的有效Reader引用。 -
systemId
- 必须是符合URI语法的String。
-
StreamSource
public StreamSource(String systemId)
从URL构造StreamSource。- 参数
-
systemId
- 必须是符合URI语法的String。
-
StreamSource
public StreamSource(File f)
从文件构造StreamSource。- 参数
-
f
- 必须是非null文件引用。
-
-
方法详细信息
-
setInputStream
public void setInputStream(InputStream inputStream)
设置要用作输入的字节流。 通常,应使用流而不是读取器,以便XML解析器可以解析XML声明指定的字符编码。如果使用此Source对象处理样式表,通常也应调用setSystemId,以便可以解析相对URL引用。
- 参数
-
inputStream
- 对XML流的有效InputStream引用。
-
getInputStream
public InputStream getInputStream()
获取使用setByteStream设置的字节流。- 结果
- 使用setByteStream设置的字节流,如果未调用setByteStream或ByteStream构造函数,则返回null。
-
setReader
public void setReader(Reader reader)
将输入设置为字符阅读器。 通常,应使用流而不是读取器,以便XML解析器可以解析XML声明指定的字符编码。 但是,在许多情况下,输入流的编码已经解析,就像从StringReader读取XML一样。- 参数
-
reader
- 对XML CharacterStream的有效Reader引用。
-
getReader
public Reader getReader()
获取使用setReader设置的字符流。- 结果
- 使用setReader设置的字符流,如果未调用setReader或Reader构造函数,则为null。
-
setPublicId
public void setPublicId(String publicId)
设置此Source的公共标识符。公共标识符始终是可选的:如果应用程序编写器包含一个,它将作为位置信息的一部分提供。
- 参数
-
publicId
- 公共标识符作为字符串。
-
getPublicId
public String getPublicId()
获取使用setPublicId设置的公共标识符。- 结果
- 使用setPublicId设置的公共标识符,如果未调用setPublicId,则为null。
-
setSystemId
public void setSystemId(String systemId)
设置此Source的系统标识符。如果存在字节流或字符流,则系统标识符是可选的,但是提供一个字符串仍然很有用,因为应用程序可以使用它来解析相对URI并将其包含在错误消息和警告中(解析器将尝试仅在没有指定字节流或字符流时才打开与URI的连接。
- Specified by:
-
setSystemId
in interfaceSource
- 参数
-
systemId
- 系统标识符作为URL字符串。
-
getSystemId
public String getSystemId()
获取使用setSystemId设置的系统标识符。- Specified by:
-
getSystemId
在界面Source
- 结果
- 使用setSystemId设置的系统标识符,如果未调用setSystemId,则为null。
-
setSystemId
public void setSystemId(File f)
从文件引用中设置系统ID。- 参数
-
f
- 必须是非null文件引用。
-
isEmpty
public boolean isEmpty()
指示StreamSource
对象是否为空。 Empty定义如下:- 所有输入源,包括公共标识符,系统标识符,字节流和字符流,都是
null
。 - 公共标识符和系统标识符为
null
,字节和字符流为null
或不包含任何字节或字符。请注意,如果提供了字节流,则此方法将重置字节流;如果未提供字节流,则此方法将重置字符流。
如果在检查字节或字符流时出错,该方法将返回false以允许XML处理器处理错误。
- 所有输入源,包括公共标识符,系统标识符,字节流和字符流,都是
-
-