JavaTM 2 Platform
Standard Ed. 6

javax.xml.transform
類別 Transformer

java.lang.Object
  繼承者 javax.xml.transform.Transformer

public abstract class Transformer
extends Object

此抽象類別的實例能夠將源階層樹轉換為結果階層樹。

可以通過 TransformerFactory.newTransformer 方法獲取此類別的實例。然後可以使用此實例處理來自不同源的 XML,並將轉換輸出寫入各種接收器。

在多執行緒同時運行時不能使用此類別的物件。不同執行緒可以同時使用不同的 Transformers。

Transformer 可以多次使用。可以在轉換之間保留參數和輸出屬性。


建構子摘要
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()
          獲取將用於解析在 document() 中使用的 URI 的物件。
 void reset()
          將此 Transformer 重置為其初始配置。
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)
          設置將用於解析在 document() 中使用的 URI 的物件。
abstract  void transform(Source xmlSource, Result outputTarget)
          將 XML Source 轉換為 Result
 
從類別 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 具有相同的 URIResolverErrorListener Object,例如 Object.equals(Object obj)。但保證具有功能相同的 URIResolverErrorListener

拋出:
UnsupportedOperationException - 當實作不能覆寫此方法時。
從以下版本開始:
1.5

transform

public abstract void transform(Source xmlSource,
                               Result outputTarget)
                        throws TransformerException

將 XML Source 轉換為 Result。當實例化 Transformer 和對 Transformer 實例進行任何修改時,指定的轉換行為由 TransformerFactory 的實際設置決定。

Source 表示為由 DocumentBuilder.newDocument() 建構的空文檔。空 Source 的轉換結果取決於轉換行為;結果不總為空 Result

參數:
xmlSource - 要轉換的 XML 輸入。
outputTarget - 轉換 xmlSourceResult
拋出:
TransformerException - 如果轉換過程中發生不可恢復的錯誤。

setParameter

public abstract void setParameter(String name,
                                  Object value)
添加一個轉換參數。

以兩部分字元串形式傳遞限定名稱,即用花括號括起來的名稱空間 URI,後跟本地名稱。如果名稱中有 null URL,則 String 只包含本地名稱。應用程序可以通過測試安全地檢查非 null URI,以查看名稱的首字元是否為 '{' 字元。

例如,如果 URI 和本地名稱是從通過 <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/> 定義的元素獲取的,則限定名稱將為 "{http://xyz.foo.com/yada/baz.html}foo"。注意,不使用前綴。

參數:
name - 參數名稱,它可以以花括號({})中的名稱空間 URI 開始。
value - 值物件。它可以為任何有效的 Java 物件。處理器負責提供正確的物件 coersion,或只傳遞在擴展中使用的物件。
拋出:
NullPointerException - 如果值為 null。

getParameter

public abstract Object getParameter(String name)
獲取通過 setParameter 顯式設置的參數。

此方法不返回預設參數值,預設參數值直到在轉換過程中計算了節點上下文後才能確定。

參數:
name - 要獲取的 Object
返回:
已通過 setParameter 設置的參數。

clearParameters

public abstract void clearParameters()
清除所有通過 setParameter 設置的參數。


setURIResolver

public abstract void setURIResolver(URIResolver resolver)
設置將用於解析在 document() 中使用的 URI 的物件。

如果解析器參數為 null,則將清除 URIResolver 值,且轉換器將不再擁有解析器。

參數:
resolver - 實作 URIResolver 介面的物件,或為 null。

getURIResolver

public abstract URIResolver getURIResolver()
獲取將用於解析在 document() 中使用的 URI 的物件。

返回:
實作 URIResolver 介面的物件,或返回 null。

setOutputProperties

public abstract void setOutputProperties(Properties oformat)
設置轉換的輸出屬性。這些屬性將覆寫通過 xsl:output 在 Templates 中設置的屬性。

如果此函數的參數為 null,則移除任何以前設置的屬性,且值將恢復為 templates 物件中定義的值。

以兩部分字元串形式傳遞限定屬性,即用花括號括起來的名稱空間 URI,後跟本地名稱。如果名稱中有 null URL,則 String 只包含本地名稱。應用程序可以通過測試安全地檢查非 null URI,以查看名稱的首字元是否為 '{' 字元。

例如,如果 URI 和本地名稱是從通過 <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/> 定義的元素獲取的,則限定名稱將為 "{http://xyz.foo.com/yada/baz.html}foo"。注意,不使用前綴。

如果任何參數鍵不能被識別且不是名稱空間限定的,則拋出 IllegalArgumentException

參數:
oformat - 將用於覆寫在實際轉換中任何相同屬性的輸出屬性集。
拋出:
IllegalArgumentException - 當鍵無法識別且不是限定於名稱空間的鍵時。
另請參見:
OutputKeys, Properties

getOutputProperties

public abstract Properties getOutputProperties()

獲取轉換的輸出屬性的副本。

返回的屬性應包含由使用者設置的屬性,以及通過樣式表設置的屬性,且這些屬性將 section 16 of the XSL Transformations (XSLT) W3C Recommendation 指定的預設屬性作為“預設值”。由使用者或通過樣式表特定設置的屬性應位於基本 Properties 列表中,而未特定設置的 XSLT 預設屬性應位於預設的 Properties 列表中。因此,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 無關。

返回:
下一個實際轉換中的輸出屬性集的副本。
另請參見:
OutputKeys, Properties, XSL Transformations (XSLT) Version 1.0

setOutputProperty

public abstract void setOutputProperty(String name,
                                       String value)
                                throws IllegalArgumentException
設置轉換中實際的輸出屬性。

以兩部分字元串形式傳遞限定屬性名稱,即用花括號括起來的名稱空間 URI,後跟本地名稱。如果名稱中有 null URL,則 String 只包含本地名稱。應用程序可以通過測試安全地檢查非 null URI,以查看名稱的首字元是否為 '{' 字元。

例如,如果 URI 和本地名稱是從通過 <xyz:foo xmlns:xyz="http://xyz.foo.com/yada/baz.html"/> 定義的元素獲取的,則限定名稱將為 "{http://xyz.foo.com/yada/baz.html}foo"。注意,不使用前綴。

傳遞給 setOutputProperties(java.util.Properties) 的 Properties 物件不會受到調用此方法的影響。

參數:
name - 指定了輸出屬性名稱的非 null String,它可以是名稱空間限定的。
value - 輸出屬性的非 null 字元串值。
拋出:
IllegalArgumentException - 如果不支持屬性,且該屬性沒有限定於某一名稱空間。
另請參見:
OutputKeys

getOutputProperty

public abstract String getOutputProperty(String name)
                                  throws IllegalArgumentException

獲取對轉換器有效的輸出屬性。

如果已經使用 setOutputProperty(java.lang.String, java.lang.String) 設置了屬性,則返回所設置的值。如果在樣式表中顯式地指定了屬性,則返回所指定的值。如果使用預設屬性值,即沒有使用 setOutputProperty(java.lang.String, java.lang.String) 或在樣式表中顯式地設置了任何值,則結果將隨實作以及輸入樣式表而改變。

參數:
name - 指定了輸出屬性名稱的非 null String,它可以是名稱空間限定的。
返回:
輸出屬性的字元串值,如果找不到屬性,則返回 null。
拋出:
IllegalArgumentException - 如果不支持屬性。
另請參見:
OutputKeys

setErrorListener

public abstract void setErrorListener(ErrorListener listener)
                               throws IllegalArgumentException
設置轉換的實際錯誤事件偵聽器。

參數:
listener - 新錯誤偵聽器。
拋出:
IllegalArgumentException - 如果偵聽器為 null。

getErrorListener

public abstract ErrorListener getErrorListener()
獲取轉換的實際錯誤事件處理程序。實作必須提供預設錯誤偵聽器。

返回:
當前錯誤處理程序,它永遠不應為 null。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only