XslTransform.Transform メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
読み込まれた XSLT スタイル シートを使用して、XML データを変換します。
オーバーロード
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
Transform(XPathNavigator, XsltArgumentList, XmlResolver)
指定した args
を使用して XPathNavigator の XML データを変換し、その結果を XmlReader に出力します。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(XPathNavigator, XsltArgumentList, XmlResolver) がキャッシュされていません。
戻り値
変換結果を格納している XmlReader。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態に残ります。 つまり、変換プロセスの前の現在のノードは、メソッドの呼び出し後も現在の Transform ノードのままです。
読み取り専用の出力を提供するため XmlReader 、 xsl:output
要素は無視されます。 詳細については 、XslTransform からの出力 を参照してください。
このメソッドを使用すると、ソース ドキュメントの非同期変換を実行できます。
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver)
指定した args
を使用して XPathNavigator の XML データを変換し、その結果を TextWriter に出力します。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- TextWriter
出力先の TextWriter。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver) がキャッシュされていません。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態のままになります。 つまり、変換プロセスの前の現在のノードは、メソッドの呼び出し後も現在の Transform ノードのままです。
要素への出力TextWriter時に要素のxsl:output
エンコード属性はサポートされていません。 サポートされる属性の詳細については、 XslTransform からの出力 を xsl:output
参照してください。
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver)
指定した args
を使用して XPathNavigator の XML データを変換し、その結果を Stream に出力します。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- Stream
出力先のストリーム。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(XPathNavigator, XsltArgumentList, Stream, XmlResolver) がキャッシュされていません。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
例
次の例では、顧客テーブルを読み込み、 XmlDataDocument XSLT 変換を実行して顧客データを HTML テーブルにプルします。 この例では、Microsoft SQL Server 2000 Northwind データベースを使用します。
using System;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create a DataSet and load it with customer data.
DataSet dsNorthwind = new DataSet();
String sConnect;
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind";
SqlConnection nwconnect = new SqlConnection(sConnect);
String sCommand = "Select * from Customers where Region='WA'";
SqlDataAdapter myDataAdapter = new SqlDataAdapter(sCommand, nwconnect);
myDataAdapter.Fill(dsNorthwind,"Customers");
// Load the DataSet into an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument(dsNorthwind);
// Create the XslTransform object and load the stylesheet.
XslTransform xsl = new XslTransform();
xsl.Load("customers.xsl");
// Create an XPathNavigator to use in the transform.
XPathNavigator nav = doc.CreateNavigator();
// Create a FileStream object.
FileStream fs = new FileStream("cust.html", FileMode.Create);
// Transform the data.
xsl.Transform(nav, null, fs, null);
}
}
Imports System.IO
Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
public class Sample
public shared sub Main()
' Create a DataSet and load it with customer data.
Dim dsNorthwind as DataSet = new DataSet()
Dim sConnect as String
sConnect="Data Source=localhost;Integrated Security=SSPI;Initial Catalog=Northwind"
Dim nwconnect as SqlConnection
nwconnect = new SqlConnection(sConnect)
Dim sCommand as String = "Select * from Customers where Region='WA'"
Dim myDataAdapter as SqlDataAdapter
myDataAdapter = new SqlDataAdapter(sCommand, nwconnect)
myDataAdapter.Fill(dsNorthwind,"Customers")
' Load the DataSet into an XmlDataDocument.
Dim doc as XmlDataDocument = new XmlDataDocument(dsNorthwind)
' Create the XslTransform object and load the stylesheet.
Dim xsl as XslTransform = new XslTransform()
xsl.Load("customers.xsl")
' Create an XPathNavigator to use in the transform.
Dim nav as XPathNavigator = doc.CreateNavigator()
' Create a FileStream object.
Dim fs as FileStream = new FileStream("cust.html", FileMode.Create)
' Transform the data.
xsl.Transform(nav, nothing, fs, nothing)
end sub
end class
この例は、customers.xsl
ファイルを入力として使用します。
<!-- Stylesheet to sort customers by city-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="NewDataSet">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>Company Name</TD>
<TD>Contact Name</TD>
<TD>City</TD>
</TR>
<xsl:apply-templates select="Customers">
<xsl:sort select="City"/>
</xsl:apply-templates>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="Customers">
<TR>
<TD><xsl:value-of select="CompanyName"/></TD>
<TD><xsl:value-of select="ContactName"/></TD>
<TD><xsl:value-of select="City"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態に残ります。 つまり、変換プロセスの前の現在のノードは、メソッドの呼び出し後も現在の Transform ノードのままです。
サポートされる属性の詳細については、 XslTransform からの出力 を xsl:output
参照してください。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を XmlWriter に出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) がキャッシュされていません。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
例
次の例では、XML ドキュメントを HTML ドキュメントに変換します。 テーブル内の各書籍の ISBN、タイトル、および価格が表示されます。
#using <System.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()
{
String^ filename = "books.xml";
String^ stylesheet = "output.xsl";
//Load the stylesheet.
XslTransform^ xslt = gcnew XslTransform;
xslt->Load( stylesheet );
//Load the file to transform.
XPathDocument^ doc = gcnew XPathDocument( filename );
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter^ writer = gcnew XmlTextWriter( Console::Out );
//Transform the file and send the output to the console.
xslt->Transform(doc,nullptr,writer,nullptr);
writer->Close();
}
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
using System.Xml.XPath;
public class Sample
{
private const String filename = "books.xml";
private const String stylesheet = "output.xsl";
public static void Main()
{
//Load the stylesheet.
XslTransform xslt = new XslTransform();
xslt.Load(stylesheet);
//Load the file to transform.
XPathDocument doc = new XPathDocument(filename);
//Create an XmlTextWriter which outputs to the console.
XmlTextWriter writer = new XmlTextWriter(Console.Out);
//Transform the file and send the output to the console.
xslt.Transform(doc, null, writer, null);
writer.Close();
}
}
Option Strict
Option Explicit
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Imports System.Xml.XPath
Public Class Sample
Private Shared filename1 As String = "books.xml"
Private Shared stylesheet1 As String = "output.xsl"
Public Shared Sub Main()
'Load the stylesheet.
Dim xslt As New XslTransform()
xslt.Load(stylesheet1)
'Load the file to transform.
Dim doc As New XPathDocument(filename1)
'Create an XmlTextWriter which outputs to the console.
Dim writer As New XmlTextWriter(Console.Out)
'Transform the file and send the output to the console.
xslt.Transform(doc, Nothing, writer, Nothing)
writer.Close()
End Sub
End Class
このサンプルは、次の 2 つの入力ファイルを使用します。
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>
output.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 (xsl:output``xsl:output
は無視されます) にXmlWriter出力する場合、要素はサポートされていません。 詳細については 、XslTransform からの出力 を参照してください。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver)
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を TextWriter に出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter, resolver As XmlResolver)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- TextWriter
出力先の TextWriter。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(IXPathNavigable, XsltArgumentList, TextWriter, XmlResolver) がキャッシュされていません。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
例
次の例では、XML ファイルを変換し、HTML 文字列を出力します。 およびStringReaderStringWriterクラスは、文字列の読み取りと書き込みに使用されます。
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();
}
}
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
この例は、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>
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。
要素への出力TextWriter時に要素のxsl:output
エンコード属性はサポートされていません。 サポートされる属性の詳細については、 XslTransform からの出力 を xsl:output
参照してください。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, Stream, XmlResolver)
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を Stream に出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream, resolver As XmlResolver)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- Stream
出力先のストリーム。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform がキャッシュされていません。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
例
次の例では、ASP.NET ページ内で変換を実行します。
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="C#" runat="server">
void Page_Load(Object sender, EventArgs e)
{
// Load the XML document to transform.
XPathDocument doc = new XPathDocument(Server.MapPath("books.xml"));
// Load the stylesheet and perform the transform.
XslTransform xslt = new XslTransform();
xslt.Load(Server.MapPath("output.xsl"));
xslt.Transform(doc, null, Response.OutputStream, null);
}
</script>
</html>
<%@ Import Namespace="System" %>
<%@ Import Namespace="System.IO" %>
<%@ import NameSpace="System.Web" %>
<%@ Import Namespace="System.Xml.XPath" %>
<%@ Import Namespace="System.Xml.Xsl" %>
<html>
<script language="VB" runat="server">
sub Page_Load(sender as Object, e as EventArgs)
' Load the XML document to transform.
dim doc as XPathDocument = new XPathDocument(Server.MapPath("books.xml"))
' Load the stylesheet and perform the transform.
dim xslt as XslTransform = new XslTransform()
xslt.Load(Server.MapPath("output.xsl"))
xslt.Transform(doc, nothing, Response.OutputStream, nothing)
end sub
</script>
</html>
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList, XmlWriter)
注意事項
You should pass XmlResolver to Transform() method
指定した args を使用して XPathNavigator の XML データを変換し、その結果を XmlWriter に出力します。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter)
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態のままになります。 つまり、変換プロセスの前の現在のノードは、メソッドが呼び出された後も現在の Transform ノードのままです。
(xsl:output``xsl:output
は無視されます) にXmlWriter出力する場合、要素はサポートされていません。 詳細については 、XslTransform からの出力 を参照してください。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList, TextWriter)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して XPathNavigator の XML データを変換し、その結果を TextWriter に出力します。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As TextWriter)
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- TextWriter
出力先の TextWriter。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態のままになります。 つまり、変換プロセスの前の現在のノードは、メソッドの呼び出し後も現在の Transform ノードのままです。
要素への出力TextWriter時に要素のxsl:output
エンコード属性はサポートされていません。 サポートされる属性の詳細については、 XslTransform からの出力 を xsl:output
参照してください。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
こちらもご覧ください
適用対象
Transform(String, String, XmlResolver)
XML データを入力ファイルに変換し、その結果を出力ファイルに出力します。
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile, System::Xml::XmlResolver ^ resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver? resolver);
public void Transform (string inputfile, string outputfile, System.Xml.XmlResolver resolver);
member this.Transform : string * string * System.Xml.XmlResolver -> unit
Public Sub Transform (inputfile As String, outputfile As String, resolver As XmlResolver)
パラメーター
- inputfile
- String
変換するソース ドキュメントの URL。
- outputfile
- String
出力ファイルの URL。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform がキャッシュされていません。
例
次の例では、XSLT 変換を実行し、ファイルに出力します。 既定の XmlUrlResolver 資格情報を使用すると、外部リソースが解決されます。 詳細については、DefaultCredentials を参照してください。
// Create a resolver with default credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
resolver->Credentials = System::Net::CredentialCache::DefaultCredentials;
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "http://myServer/data/authors.xsl", resolver );
// Transform the file.
xslt->Transform( "books.xml", "books.html", resolver );
// Create a resolver with default credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials;
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver);
// Transform the file.
xslt.Transform("books.xml", "books.html", resolver);
' Create a resolver with default credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
resolver.Credentials = System.Net.CredentialCache.DefaultCredentials
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("http://myServer/data/authors.xsl", resolver)
' Transform the file.
xslt.Transform("books.xml", "titles.xml", resolver)
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を XmlWriter に出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As XmlWriter)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
スタイル args
シートで定義されている要素と xsl:param
一致します。 (xsl:output``xsl:output
は無視されます) にXmlWriter出力する場合、要素はサポートされていません。 詳細については 、XslTransform からの出力 を参照してください。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, XmlResolver)
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を XmlReader に出力します。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlResolver ^ resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlResolver? resolver);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlResolver -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList, resolver As XmlResolver) As XmlReader
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(IXPathNavigable, XsltArgumentList, XmlResolver) がキャッシュされていません。
戻り値
変換結果を格納している XmlReader。
例
次の例では、XML ドキュメントを変換し、結果 XmlReader
を . XmlUrlResolver必要な資格情報を持つ A は、XSLT document()
関数を処理するために使用されます。
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "titles.xsl" );
// Create a resolver and specify the necessary credentials.
XmlUrlResolver^ resolver = gcnew XmlUrlResolver;
System::Net::NetworkCredential^ myCred;
myCred = gcnew System::Net::NetworkCredential( UserName, SecurelyStoredPassword, Domain );
resolver->Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument^ doc = gcnew XPathDocument( "books.xml" );
XmlReader^ reader = xslt->Transform( doc, nullptr, resolver );
// Load the reader into a new document for more processing.
XmlDocument^ xmldoc = gcnew XmlDocument;
xmldoc->Load( reader );
// Create the XslTransform object.
XslTransform xslt = new XslTransform();
// Load the stylesheet.
xslt.Load("titles.xsl");
// Create a resolver and specify the necessary credentials.
XmlUrlResolver resolver = new XmlUrlResolver();
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
// Transform the file using the resolver. The resolver is used
// to process the XSLT document() function.
XPathDocument doc = new XPathDocument("books.xml");
XmlReader reader = xslt.Transform(doc, null, resolver);
// Load the reader into a new document for more processing.
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(reader);
' Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
' Load the stylesheet.
xslt.Load("titles.xsl")
' Create a resolver and specify the necessary credentials.
Dim resolver as XmlUrlResolver = new XmlUrlResolver()
Dim myCred as System.Net.NetworkCredential
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain)
resolver.Credentials = myCred
' Transform thefile using the resolver. The resolver is used
' to process the XSLT document() function.
Dim doc as XPathDocument = new XPathDocument("books.xml")
Dim reader as XmlReader = xslt.Transform(doc, nothing, resolver)
' Load the reader into a new document for more processing.
Dim xmldoc as XmlDocument = new XmlDocument()
xmldoc.Load(reader)
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 要素への出力XmlReader時にxsl:output
要素はサポートされていません (xsl:output
要素は無視されます)。 詳細については 、XslTransform からの出力 を参照してください。
このメソッドを使用すると、ソース ドキュメントの非同期変換を実行できます。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out, null);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を TextWriter に出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::TextWriter ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.TextWriter output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.TextWriter output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As TextWriter)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- TextWriter
出力先の TextWriter。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
スタイル args
シートで定義されている要素と xsl:param
一致します。
要素への出力TextWriter時に要素のxsl:output
エンコード属性はサポートされていません。 サポートされる属性の詳細については、 XslTransform からの出力 を xsl:output
参照してください。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, Stream)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を Stream に出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, args As XsltArgumentList, output As Stream)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- Stream
出力先のストリーム。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
スタイル args
シートで定義されている要素と xsl:param
一致します。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver)
指定した args を使用して XPathNavigator の XML データを変換し、その結果を XmlWriter に出力します。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::Xml::XmlWriter ^ output, System::Xml::XmlResolver ^ resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.Xml.XmlWriter output, System.Xml.XmlResolver? resolver);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.Xml.XmlWriter output, System.Xml.XmlResolver resolver);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As XmlWriter, resolver As XmlResolver)
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- resolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
XmlResolver メソッドが完了した後、Transform(XPathNavigator, XsltArgumentList, XmlWriter, XmlResolver) がキャッシュされていません。
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
例
次の例では、XSLT 変換を実行する前に XML ドキュメントを読み込んで編集します。
XmlDocument^ doc = gcnew 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 = gcnew XslTransform;
xslt->Load( "output.xsl" );
XmlTextWriter^ writer = gcnew XmlTextWriter( "books.html", nullptr );
xslt->Transform( nav, nullptr, writer, nullptr);
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);
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)
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態のままになります。 つまり、変換プロセスの前の現在のノードは、メソッドが呼び出された後も現在の Transform ノードのままです。
(xsl:output``xsl:output
は無視されます) にXmlWriter出力する場合、要素はサポートされていません。 詳細については 、XslTransform からの出力 を参照してください。
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して XPathNavigator の XML データを変換し、その結果を XmlReader に出力します。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As XPathNavigator, args As XsltArgumentList) As XmlReader
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
戻り値
変換結果を格納している XmlReader。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態に残ります。 つまり、変換プロセスの前の現在のノードは、メソッドの呼び出し後も現在の Transform ノードのままです。
読み取り専用の出力を提供するため XmlReader 、 xsl:output
要素は無視されます。 詳細については 、XslTransform からの出力 を参照してください。
このメソッドを使用すると、ソース ドキュメントの非同期変換を実行できます。
注意
このメソッドは、互換性のために残されています。 このプロパティの XmlResolver 設定によって、XSLT document() 関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して IXPathNavigable の XML データを変換し、その結果を XmlReader に出力します。
public:
System::Xml::XmlReader ^ Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? args);
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public System.Xml.XmlReader Transform (System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList args);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList -> System.Xml.XmlReader
Public Function Transform (input As IXPathNavigable, args As XsltArgumentList) As XmlReader
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクトです。 .NET Framework では、これは XmlNode (通常は XmlDocument)、または変換されるデータを含む XPathDocument になります。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
戻り値
変換結果を格納している XmlReader。
- 属性
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
スタイル args
シートで定義されている要素と xsl:param
一致します。 要素への出力XmlReader時にxsl:output
要素はサポートされていません (xsl:output
要素は無視されます)。 詳細については 、XslTransform からの出力 を参照してください。
このメソッドを使用すると、ソース ドキュメントの非同期変換を実行できます。
変換はドキュメント全体に対して行われます。 つまり、ドキュメント ルート ノード以外のノードを指定しても、変換処理では、読み込んだドキュメントのすべてのノードがアクセスされます。 ノード フラグメントを変換するには、ノード フラグメントのみを含むフラグメントを作成XmlDocumentし、メソッドにXmlDocumentTransform渡す必要があります。
次の例では、ノード フラグメントに対して変換を実行します。
XslTransform xslt = new XslTransform();
xslt.Load("print_root.xsl");
XmlDocument doc = new XmlDocument();
doc.Load("library.xml");
// Create a new document containing just the node fragment.
XmlNode testNode = doc.DocumentElement.FirstChild;
XmlDocument tmpDoc = new XmlDocument();
tmpDoc.LoadXml(testNode.OuterXml);
// Pass the document containing the node fragment
// to the Transform method.
Console.WriteLine("Passing " + tmpDoc.OuterXml + " to print_root.xsl");
xslt.Transform(tmpDoc, null, Console.Out);
この例では、 library.xml
入力としてファイルと print_root.xsl
ファイルを使用し、コンソールに以下を出力します。
Passing <book genre="novel" ISBN="1-861001-57-5"><title>Pride And Prejudice</title></book> to print_root.xsl
Root node is book.
library.xml
<library>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
</book>
<book genre='novel' ISBN='1-81920-21-2'>
<title>Hook</title>
</book>
</library>
print_root.xsl
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform" >
<output method="text" />
<template match="/">
Root node is <value-of select="local-name(//*[position() = 1])" />
</template>
</stylesheet>
こちらもご覧ください
適用対象
Transform(String, String)
注意事項
You should pass XmlResolver to Transform() method
XML データを入力ファイルに変換し、その結果を出力ファイルに出力します。
public:
void Transform(System::String ^ inputfile, System::String ^ outputfile);
public void Transform (string inputfile, string outputfile);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (string inputfile, string outputfile);
member this.Transform : string * string -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : string * string -> unit
Public Sub Transform (inputfile As String, outputfile As String)
パラメーター
- inputfile
- String
変換するソース ドキュメントの URL。
- outputfile
- String
出力ファイルの URL。
- 属性
例
次の使用例は、スタイル シートを books.xml
使用してファイルを output.xsl
変換し、結果をファイルに books.html
出力します。
// Create the XslTransform object.
XslTransform^ xslt = gcnew XslTransform;
// Load the stylesheet.
xslt->Load( "output.xsl" );
// Transform the file.
xslt->Transform("books.xml","books.html");
//Create the XslTransform object.
XslTransform xslt = new XslTransform();
//Load the stylesheet.
xslt.Load("output.xsl");
//Transform the file.
xslt.Transform("books.xml", "books.html");
'Create the XslTransform object.
Dim xslt as XslTransform = new XslTransform()
'Load the stylesheet.
xslt.Load("output.xsl")
'Transform the file.
xslt.Transform("books.xml", "books.html")
このサンプルでは、次の 2 つの入力ファイルを使用します。
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>
output.xsl
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
<HTML>
<BODY>
<TABLE BORDER="2">
<TR>
<TD>ISBN</TD>
<TD>Title</TD>
<TD>Price</TD>
</TR>
<xsl:apply-templates select="book"/>
</TABLE>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="book">
<TR>
<TD><xsl:value-of select="@ISBN"/></TD>
<TD><xsl:value-of select="title"/></TD>
<TD><xsl:value-of select="price"/></TD>
</TR>
</xsl:template>
</xsl:stylesheet>
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
注意
このメソッドは、.NET Frameworkのバージョン 1.1 では使用されていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。
こちらもご覧ください
適用対象
Transform(XPathNavigator, XsltArgumentList, Stream)
注意事項
You should pass XmlResolver to Transform() method
指定した args
を使用して XPathNavigator の XML データを変換し、その結果を Stream に出力します。
public:
void Transform(System::Xml::XPath::XPathNavigator ^ input, System::Xml::Xsl::XsltArgumentList ^ args, System::IO::Stream ^ output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList? args, System.IO.Stream output);
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
[System.Obsolete("You should pass XmlResolver to Transform() method")]
public void Transform (System.Xml.XPath.XPathNavigator input, System.Xml.Xsl.XsltArgumentList args, System.IO.Stream output);
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
[<System.Obsolete("You should pass XmlResolver to Transform() method")>]
member this.Transform : System.Xml.XPath.XPathNavigator * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XPathNavigator, args As XsltArgumentList, output As Stream)
パラメーター
- input
- XPathNavigator
変換されるデータを含む XPathNavigator。
- args
- XsltArgumentList
変換に対する入力として使用される名前空間修飾引数を含む XsltArgumentList。
- output
- Stream
出力先のストリーム。
- 属性
例外
XSLT 変換の処理中にエラーが発生しました。
メモ : これは、旧バージョンからの動作の変更です。 Microsoft .NET Framework Version 1.1 以前のバージョンを使用している場合は、XsltException がスローされます。
注釈
注意
このクラスはXslTransform、.NET Framework バージョン 2.0 では廃止されています。 クラスは XslCompiledTransform 新しい XSLT プロセッサです。 詳細については、「 XslCompiledTransform クラスの使用 」および「 XslTransform クラスからの移行」を参照してください。
XslTransform は XSLT 1.0 構文をサポートしています。 XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform
を含める必要があります。
スタイル args
シートで定義されている要素と xsl:param
一致します。 変換の選択は、ドキュメント全体に適用されます。 つまり、現在のノードがドキュメント ルート ノード以外のノード ツリーに設定されている場合、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなります。 変換が実行されると、元の XPathNavigator 状態に残ります。 つまり、変換プロセスの前の現在のノードは、メソッドの呼び出し後も現在の Transform ノードのままです。
サポートされる属性の詳細については、 XslTransform からの出力 を xsl:output
参照してください。
注意
このメソッドは使われていません。 このプロパティの設定によって、 XmlResolver XSLT document()
関数の解決方法が決まります。 推奨される方法は、オブジェクトを Transform 引数の 1 つとして受け取る XmlResolver メソッドを使用することです。