- java.lang.Object
-
- javax.xml.transform.stream.StreamSource
-
- All Implemented Interfaces:
-
Source
public class StreamSource extends Object implements Source
作为转换的持有人以XML标记流的形式来源。
注意:由于内部使用
Reader
或InputStream
实例,StreamSource
可能仅使用一次StreamSource
实例。- 从以下版本开始:
- 1.4
-
-
Field Summary
Fields Modifier and Type Field 描述 static String
FEATURE
如果传递此值作为参数,则TransformerFactory.getFeature(java.lang.String)
返回true,则Transformer支持此类型的Source输入。
-
构造方法摘要
构造方法 Constructor 描述 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。
-
方法摘要
所有方法 接口方法 具体的方法 Modifier and Type 方法 描述 InputStream
getInputStream()
获取使用setByteStream设置的字节流。String
getPublicId()
获取使用setPublicId设置的公共标识符。Reader
getReader()
获取用setReader设置的字符流。String
getSystemId()
获取使用setSystemId设置的系统标识符。boolean
isEmpty()
指示StreamSource
对象是否为空。void
setInputStream(InputStream inputStream)
设置要用作输入的字节流。void
setPublicId(String publicId)
设置此源的公共标识符。void
setReader(Reader reader)
将输入设置为字符读取器。void
setSystemId(File f)
从文件引用设置系统ID。void
setSystemId(String systemId)
设置此源的系统标识符。
-
-
-
字段详细信息
-
FEATURE
public static final String FEATURE
如果传递此值作为参数,则TransformerFactory.getFeature(java.lang.String)
返回true,则Transformer支持此类型的Source输入。- 另请参见:
- Constant Field Values
-
-
构造方法详细信息
-
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语法的字符串。
-
StreamSource
public StreamSource(Reader reader)
从字符读取器构造一个StreamSource。 通常,应该使用流而不是阅读器,以便XML解析器可以解析由XML声明指定的字符编码。 然而,在许多情况下,输入流的编码已经解决了,就像从StringReader读取XML的情况一样。- 参数
-
reader
- 对XML字符流的有效读取器引用。
-
StreamSource
public StreamSource(Reader reader, String systemId)
从字符读取器构造一个StreamSource。 通常,应该使用流而不是阅读器,以便XML解析器可以解析由XML声明指定的字符编码。 然而,在许多情况下,输入流的编码已经解决了,就像从StringReader读取XML的情况一样。- 参数
-
reader
- 对XML字符流的有效读者引用。 -
systemId
- 必须是符合URI语法的字符串。
-
StreamSource
public StreamSource(String systemId)
从URL构造一个StreamSource。- 参数
-
systemId
- 必须是符合URI语法的字符串。
-
StreamSource
public StreamSource(File f)
从文件构造一个StreamSource。- 参数
-
f
- 必须是非空文件引用。
-
-
方法详细信息
-
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)
设置此源的公共标识符。公共标识符始终是可选的:如果应用程序写入程序包含一个,那么它将作为位置信息的一部分提供。
- 参数
-
publicId
- 公共标识符作为字符串。
-
getPublicId
public String getPublicId()
获取使用setPublicId设置的公共标识符。- 结果
- 使用setPublicId设置的公共标识符,如果未调用setPublicId,则为null。
-
setSystemId
public void setSystemId(String systemId)
设置此源的系统标识符。如果有字节流或字符流,则系统标识符是可选的,但是由于应用程序可以使用它来解析相对URI并且可以将其包含在错误消息和警告中(解析器将尝试仅当没有指定字节流或字符流时才打开与URI的连接)。
- Specified by:
-
setSystemId
在接口Source
- 参数
-
systemId
- 系统标识符作为URL字符串。
-
getSystemId
public String getSystemId()
获取使用setSystemId设置的系统标识符。- Specified by:
-
getSystemId
在接口Source
- 结果
- 使用setSystemId设置的系统标识符,如果未调用setSystemId,则为null。
-
setSystemId
public void setSystemId(File f)
从文件引用设置系统ID。- 参数
-
f
- 必须是非空文件引用。
-
isEmpty
public boolean isEmpty()
指示StreamSource
对象是否为空。 空的定义如下:- 包括公共标识符,系统标识符,字节流和字符流在内的所有输入源均为
null
。 - 公共标识符和系统标识符为
null
,字节和字符流为null
或不包含字节或字符。请注意,如果提供字节流,则此方法将重置字节流,如果未提供字节流,则将返回字符流。
在检查字节或字符流时发生错误的情况下,该方法将返回false,以允许XML处理器处理错误。
- 包括公共标识符,系统标识符,字节流和字符流在内的所有输入源均为
-
-