メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。
指定した args を使用して IXPathNavigable の XML データを変換し、その結果を TextWriter に出力します。
Overloads Public Sub Transform( _
ByVal input As IXPathNavigable, _ ByVal args As XsltArgumentList, _ ByVal output As TextWriter, _ ByVal resolver As XmlResolver _)
[C#]
public void Transform(IXPathNavigableinput,XsltArgumentListargs,TextWriteroutput,XmlResolverresolver);
[C++]
public: void Transform(IXPathNavigable* input,XsltArgumentList* args,TextWriter* output,XmlResolver* resolver);
[JScript]
public function Transform(
input : IXPathNavigable,args : XsltArgumentList,output : TextWriter,resolver : XmlResolver);
パラメータ
input
IXPathNavigable インターフェイスを実装するオブジェクト。.NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。args
変換に対する入力として使用された名前空間限定引数を含む XsltArgumentList 。output
出力先の TextWriter 。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 要素と一致します。
xsl:output 要素のエンコーディング属性は、 TextWriter に出力するときはサポートされません。どの xsl:output 属性がサポートされているかの詳細については、「 XslTransform からの出力 」を参照してください。
変換はドキュメント全体に適用されます。つまり、ドキュメント ルート ノード以外のノードに渡す場合、これによって、読み込まれたドキュメント内のすべてのノードに変換処理が行われることを防ぐことはできません。ノード フラグメントを変換するには、ノード フラグメントだけを含む XmlDocument を作成し、その XmlDocument を Transform メソッドに渡す必要があります。詳細については、「 XslTransform クラスによる XSLT プロセッサの実装 」を参照してください。
使用例
[Visual Basic, C#, C++] XML ファイルを変換し、その結果を HTML 文字列に出力する例を次に示します。この例では、 StringReader クラスと StringWriter クラスを使用して、文字列の読み取りおよび書き込みを行っています。
Imports System
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
public class Sample
public shared sub Main()
' Create a string containing the XSLT stylesheet.
Dim xsltString as String
xsltString = "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>" & _
" <xsl:template match='bookstore'>" & _
" <HTML>" & _
" <HEAD>" & _
" <TITLE>Book Titles</TITLE>" & _
" </HEAD>" & _
" <BODY>" & _
" <xsl:apply-templates select='book'/>" & _
" </BODY>" & _
" </HTML>" & _
" </xsl:template>" & _
" <xsl:template match='book'>" & _
" <P><xsl:value-of select='title'/></P>" & _
" </xsl:template>" & _
" </xsl:stylesheet>"
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
Dim rdr as StringReader = new StringReader(xsltString)
xslt.Load(new XPathDocument(rdr), nothing, nothing)
' Transform the file and output an HTML string.
Dim HTMLoutput as string
Dim writer as StringWriter = new StringWriter()
xslt.Transform(new XPathDocument("books.xml"), nothing, writer, nothing)
HTMLoutput = writer.ToString()
end sub
end class
[C#]
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample {
public static void Main() {
// Create a string containing the XSLT stylesheet.
String xsltString =
@"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<xsl:template match='bookstore'>
<HTML>
<HEAD>
<TITLE>Book Titles</TITLE>
</HEAD>
<BODY>
<xsl:apply-templates select='book'/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match='book'>
<P><xsl:value-of select='title'/></P>
</xsl:template>
</xsl:stylesheet>";
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
StringReader rdr = new StringReader(xsltString);
xslt.Load(new XPathDocument(rdr), null, null);
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform(new XPathDocument("books.xml"), null, writer, null);
HTMLoutput = writer.ToString();
}
}
[C++]
#using <mscorlib.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::IO;
using namespace System::Xml;
using namespace System::Xml::Xsl;
using namespace System::Xml::XPath;
int main() {
// Create a string containing the XSLT stylesheet.
String* xsltString =
S"<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>"
S"<xsl:template match='bookstore'>"
S"<HTML>"
S"<HEAD>"
S"<TITLE>Book Titles</TITLE>"
S"</HEAD>"
S"<BODY>"
S"<xsl:apply-templates select='book'/>"
S"</BODY>"
S"</HTML>"
S"</xsl:template>"
S"<xsl:template match='book'>"
S"<P><xsl:value-of select='title'/></P>"
S"</xsl:template>"
S"</xsl:stylesheet>";
// Create the XslTransform object.
XslTransform* xslt = new XslTransform();
// Load the stylesheet.
StringReader* rdr = new StringReader(xsltString);
xslt->Load(new XPathDocument(rdr), 0, 0);
// Transform the file and output an HTML string.
String* HTMLoutput;
StringWriter* writer = new StringWriter();
xslt->Transform(new XPathDocument(S"books.xml"), 0, writer, 0);
HTMLoutput = writer->ToString();
}
[Visual Basic, C#, C++] この例では、入力として、 books.xml というファイルを使用しています。
<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
<book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
<title>The Autobiography of Benjamin Franklin</title>
<author>
<first-name>Benjamin</first-name>
<last-name>Franklin</last-name>
</author>
<price>8.99</price>
</book>
<book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
<title>The Confidence Man</title>
<author>
<first-name>Herman</first-name>
<last-name>Melville</last-name>
</author>
<price>11.99</price>
</book>
<book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
<title>The Gorgias</title>
<author>
<name>Plato</name>
</author>
<price>9.99</price>
</book>
</bookstore>
[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 オーバーロードの一覧 | XslTransform クラスの随意動作の実装 | XslTransform からの出力 | XmlSecureResolver | XmlResolver.Credentials