次の方法で共有


XslTransform.Transform メソッド (XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

指定した args を使用して XPathNavigator の XML データを変換し、その結果を XmlWriter に出力します。

Overloads Public Sub Transform( _
   ByVal input As XPathNavigator, _   ByVal args As XsltArgumentList, _   ByVal output As XmlWriter, _   ByVal resolver As XmlResolver _)
[C#]
public void Transform(XPathNavigatorinput,XsltArgumentListargs,XmlWriteroutput,XmlResolverresolver);
[C++]
public: void Transform(XPathNavigator* input,XsltArgumentList* args,XmlWriter* output,XmlResolver* resolver);
[JScript]
public function Transform(
   input : XPathNavigator,args : XsltArgumentList,output : XmlWriter,resolver : XmlResolver);

パラメータ

  • input
    変換されるデータを含む XPathNavigatorTransform メソッドは、ドキュメント全体のコンテキストで動作し、ドキュメント全体を変換します。XML ドキュメントの一部を変換する方法については、「 XslTransform クラスによる XSLT プロセッサの実装 」を参照してください。

  • args
    変換に対する入力として使用された名前空間限定引数を含む XsltArgumentList

  • output
    出力先の XmlWriter

  • resolver
    XSLT の document() 関数を解決するために使用する XmlResolver 。これが null 参照 (Visual Basic では Nothing) の場合、document() 関数は解決されません。

    Transform メソッドが完了した後、 XmlResolver がキャッシュされていません。

例外

例外の種類 条件
XsltException XSLT 変換の処理中にエラーが発生しました。

解説

XslTransform は、XSLT 1.0 構文をサポートしています。XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform を含める必要があります。

args は、スタイル シートに定義されている xsl:param 要素と一致します。選択された変換は、ドキュメント全体に適用されます。つまり、現在のノードが、ドキュメント ルート ノード以外のノード ツリー上に設定されている場合、これによって、読み込まれたドキュメント内のすべてのノードに変換処理が行われることを防ぐことはできません。変換が行われた後も、 XPathNavigator は元の状態を維持します。これは現在のノードが、変換処理の前も Transform メソッドが呼び出された後も、現在のノードのままであることを示します。

XmlWriter に出力するとき、 xsl:output 要素はサポートされません。 xsl:output は無視されます。詳細については、「 XslTransform からの出力 」を参照してください。

使用例

[Visual Basic, C#, C++] XSLT 変換を実行する前に、XML ドキュメントを読み込んで編集する例を次に示します。

 
Dim doc as XmlDocument = new XmlDocument()
doc.Load("books.xml")

' Modify the XML file.
Dim root as XmlElement = doc.DocumentElement
root.FirstChild.LastChild.InnerText = "12.95"

' Create an XPathNavigator to use for the transform.
Dim nav as XPathNavigator = root.CreateNavigator()

' Transform the file.
Dim xslt as XslTransform = new XslTransform()
xslt.Load("output.xsl")
Dim writer as XmlTextWriter = new XmlTextWriter("books.html", nothing)
xslt.Transform(nav,nothing, writer, nothing)

[C#] 
XmlDocument doc = new XmlDocument();
doc.Load("books.xml");

// Modify the XML file.
XmlElement root = doc.DocumentElement;
root.FirstChild.LastChild.InnerText = "12.95";

// Create an XPathNavigator to use for the transform.
XPathNavigator nav = root.CreateNavigator();

// Transform the file.
XslTransform xslt = new XslTransform();
xslt.Load("output.xsl");
XmlTextWriter writer = new XmlTextWriter("books.html", null);
xslt.Transform(nav, null, writer, null);

[C++] 
XmlDocument* doc = new XmlDocument();
doc -> Load(S"books.xml");

// Modify the XML file.
XmlElement * root = doc -> DocumentElement;
root -> FirstChild -> LastChild -> InnerText = S"12.95";

// Create an XPathNavigator to use for the transform.
XPathNavigator * nav = root -> CreateNavigator();

// Transform the file.
XslTransform* xslt = new XslTransform();
xslt -> Load(S"output.xsl");
XmlTextWriter* writer = new XmlTextWriter(S"books.html", 0);
xslt -> Transform(nav, 0, writer, 0);

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

参照

XslTransform クラス | XslTransform メンバ | System.Xml.Xsl 名前空間 | XslTransform.Transform オーバーロードの一覧 | XsltArgumentList | XslTransform クラスの随意動作の実装 | XmlSecureResolver | XmlResolver.Credentials