模块 java.xml

类 StreamSource

java.lang.Object
javax.xml.transform.stream.StreamSource
所有已实现的接口:
Source

public class StreamSource extends Object implements Source

以 XML 标记流的形式充当转换源的持有者。

Note: 由于它们在内部使用 Reader InputStream 实例,StreamSource 实例只能使用一次。

自从:
1.4
  • 字段详细信息

  • 构造方法详细信息

    • StreamSource

      public StreamSource()

      零参数默认构造函数。如果使用此构造函数,并且没有使用 setInputStream(java.io.InputStream inputStream) setReader(java.io.Reader reader) 设置流源,则 Transformer 将使用 new InputStream() 创建一个空源 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 字符流的有效 Reader 引用。
    • StreamSource

      public StreamSource(Reader  reader, String  systemId)
      从字符阅读器构建 StreamSource。通常,应该使用流而不是读取器,以便 XML 解析器可以解析 XML 声明指定的字符编码。然而,在许多情况下,输入流的编码已经解决,就像从 StringReader 读取 XML 的情况一样。
      参数:
      reader - 对 XML 字符流的有效 Reader 引用。
      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 的连接)。

      指定者:
      setSystemId 在接口 Source
      参数:
      systemId - 作为 URL 字符串的系统标识符。
    • getSystemId

      public String  getSystemId()
      获取使用 setSystemId 设置的系统标识符。
      指定者:
      getSystemId 在接口 Source
      返回:
      使用 setSystemId 设置的系统标识符,如果未调用 setSystemId,则为 null。
    • setSystemId

      public void setSystemId(File  f)
      从文件引用设置系统 ID。
      参数:
      f - 必须是非空文件引用。
    • isEmpty

      public boolean isEmpty()
      指示 StreamSource 对象是否为空。空定义如下:
      • 所有输入源,包括公共标识符、系统标识符、字节流和字符流,都是null
      • 公共标识符和系统标识符是 null ,字节流和字符流要么是 null 要么不包含字节或字符。

        请注意,如果提供了字节流,此方法将重置字节流,如果未提供字节流,则重置字符流。

      如果在检查字节流或字符流时出错,该方法将返回 false 以允许 XML 处理器处理错误。

      指定者:
      isEmpty 在接口 Source
      返回:
      如果 StreamSource 对象为空,则为真,否则为假