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
変換されるデータを含む XPathNavigator 。 Transform メソッドは、ドキュメント全体のコンテキストで動作し、ドキュメント全体を変換します。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