XslCompiledTransform.Transform メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XSLT 変換を実行します。
オーバーロード
注釈
Note
デバッグ モードでコンパイルされた XSLT とリリース モードでコンパイルされた XSLT には違いがあります。 状況によっては、デバッグ モードでコンパイルされたスタイル シートは、 Load中にエラーをスローしませんが、後で Transform中に失敗します。 リリース モードでコンパイルされた同じスタイル シートは、 Load中に失敗します。 このような動作の例として、ノード セット型ではない変数が、ノード セットが必要な式に割り当てられる場合があります。
Transform(XmlReader, XsltArgumentList, TextWriter)
XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をTextWriterに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As TextWriter)
パラメーター
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- TextWriter
出力先の TextWriter 。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
注釈
スタイル シートに XSLT document() 関数が含まれている場合は、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, XmlWriter)
IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をXmlWriterに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクト。 Microsoft .NET Framework では、XmlNode (通常は XmlDocument)、または変換するデータを含む XPathDocumentのいずれかを指定できます。
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
注釈
XSLT document() 関数が有効になっている場合、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
このメソッドは、 xsl:strip-space 要素をサポートしていません。 コンパイル済みのスタイル シートにxsl:strip-space要素が含まれている場合は、Transformを入力引数として受け取るXmlReaderオーバーロードを使用する必要があります。
IXPathNavigable インターフェイスは、XmlNode クラスと XPathDocument クラスに実装されます。 これらのクラスは、XML データのメモリ内キャッシュを表します。
XmlNode クラスは W3C ドキュメント オブジェクト モデル (DOM) に基づいており、編集機能が含まれています。
XPathDocument クラスは、XPath データ モデルに基づく読み取り専用のデータ ストアです。 XPathDocument は XSLT 処理に推奨されるクラスです。 XmlNode クラスと比較すると、パフォーマンスが向上します。
変換はドキュメント全体に適用されます。 つまり、ドキュメント ルート ノード以外のノードを渡しても、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなるわけではありません。 ノード フラグメントを変換するには、ノード フラグメントのみを含むオブジェクトを作成し、そのオブジェクトを Transform メソッドに渡す必要があります。 詳細については、「 方法: ノード フラグメントを変換する」を参照してください。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, TextWriter)
IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をTextWriterに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As TextWriter)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクト。 Microsoft .NET Framework では、XmlNode (通常は XmlDocument)、または変換するデータを含む XPathDocumentのいずれかを指定できます。
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- TextWriter
出力先の TextWriter 。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
注釈
XSLT document() 関数が有効になっている場合、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
このメソッドは、 xsl:strip-space 要素をサポートしていません。 コンパイル済みのスタイル シートにxsl:strip-space要素が含まれている場合は、Transformを入力引数として受け取るXmlReaderオーバーロードを使用する必要があります。
IXPathNavigable インターフェイスは、XmlNode クラスと XPathDocument クラスに実装されます。 これらのクラスは、XML データのメモリ内キャッシュを表します。
XmlNode クラスは W3C ドキュメント オブジェクト モデル (DOM) に基づいており、編集機能が含まれています。
XPathDocument クラスは、XPath データ モデルに基づく読み取り専用のデータ ストアです。 XPathDocument は XSLT 処理に推奨されるクラスです。 XmlNode クラスと比較すると、パフォーマンスが向上します。
変換はドキュメント全体に適用されます。 つまり、ドキュメント ルート ノード以外のノードを渡しても、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなるわけではありません。 ノード フラグメントを変換するには、ノード フラグメントのみを含むオブジェクトを作成し、そのオブジェクトを Transform メソッドに渡す必要があります。 詳細については、「 方法: ノード フラグメントを変換する」を参照してください。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, Stream)
IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 XsltArgumentListは、追加のランタイム引数を提供します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As Stream)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクト。 Microsoft .NET Framework では、XmlNode (通常は XmlDocument)、または変換するデータを含む XPathDocumentのいずれかを指定できます。
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- Stream
出力先のストリーム。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
例
次の例では、XSLT 変換を実行し、 FileStreamに出力します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the FileStream.
using (FileStream fs = new FileStream(@"c:\data\output.xml", FileMode.Create))
{
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), null, fs);
}
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the FileStream.
Using fs As New FileStream("c:\data\output.xml", FileMode.Create)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), Nothing, fs)
End Using
注釈
XSLT document() 関数が有効になっている場合、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
このメソッドは、 xsl:strip-space 要素をサポートしていません。 コンパイル済みのスタイル シートにxsl:strip-space要素が含まれている場合は、Transformを入力引数として受け取るXmlReaderオーバーロードを使用する必要があります。
IXPathNavigable インターフェイスは、XmlNode クラスと XPathDocument クラスに実装されます。 これらのクラスは、XML データのメモリ内キャッシュを表します。
XmlNode クラスは W3C ドキュメント オブジェクト モデル (DOM) に基づいており、編集機能が含まれています。
XPathDocument クラスは、XPath データ モデルに基づく読み取り専用のデータ ストアです。 XPathDocument は XSLT 処理に推奨されるクラスです。 XmlNode クラスと比較すると、パフォーマンスが向上します。
変換はドキュメント全体に適用されます。 つまり、ドキュメント ルート ノード以外のノードを渡しても、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなるわけではありません。 ノード フラグメントを変換するには、ノード フラグメントのみを含むオブジェクトを作成し、そのオブジェクトを Transform メソッドに渡す必要があります。 詳細については、「 方法: ノード フラグメントを変換する」を参照してください。
こちらもご覧ください
適用対象
Transform(XmlReader, XsltArgumentList, XmlWriter)
XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をXmlWriterに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter)
パラメーター
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
注釈
スタイル シートに XSLT document() 関数が含まれている場合は、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
こちらもご覧ください
適用対象
Transform(XmlReader, XsltArgumentList, Stream)
XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As Stream)
パラメーター
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- Stream
出力先のストリーム。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
注釈
スタイル シートに XSLT document() 関数が含まれている場合は、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
こちらもご覧ください
適用対象
Transform(String, String)
URI で指定された入力ドキュメントを使用して変換を実行し、結果をファイルに出力します。
public:
void Transform(System::String ^ inputUri, System::String ^ resultsFile);
public void Transform(string inputUri, string resultsFile);
member this.Transform : string * string -> unit
Public Sub Transform (inputUri As String, resultsFile As String)
パラメーター
- inputUri
- String
入力ドキュメントの URI。
- resultsFile
- String
出力ファイルの URI。
例外
inputUri値またはresultsFile値がnull。
XSLT 変換の実行中にエラーが発生しました。
入力ドキュメントが見つかりません。
inputUriまたはresultsFileの値にファイル名またはディレクトリが含まれていますが見つかりません。
inputUri または resultsFile が有効な URI ではありません。
入力ドキュメントの読み込み中に解析エラーが発生しました。
例
次の例では、変換を実行し、ファイルに出力します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Execute the transform and output the results to a 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>
注釈
この方法では、ユーザー資格情報のない既定の XmlUrlResolver を使用して、入力ドキュメントと出力ドキュメントを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソースにある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
入力ドキュメントを読み込むには、既定の設定の XmlReader が使用されます。 XmlReaderで DTD 処理が無効になっています。 DTD 処理が必要な場合は、この機能を有効にして XmlReader を作成し、 Transform メソッドに渡します。
こちらもご覧ください
適用対象
Transform(String, XsltArgumentList, TextWriter)
URI で指定された入力ドキュメントを使用して変換を実行し、結果を TextWriterに出力します。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::TextWriter ^ results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.TextWriter results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.TextWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.TextWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As TextWriter)
パラメーター
- inputUri
- String
入力ドキュメントの URI。
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- TextWriter
出力先の TextWriter 。
例外
inputUri値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
inputUri値にファイル名またはディレクトリが含まれていますが見つかりません。
inputUri が有効な URI ではありません。
入力ドキュメントの読み込み中に解析エラーが発生しました。
例
次の例では、XSLT 変換を実行し、文字列を出力します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("HTML_out.xsl");
// Transform the file and output an HTML string.
string HTMLoutput;
StringWriter writer = new StringWriter();
xslt.Transform("books.xml", null, writer);
HTMLoutput = writer.ToString();
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("HTML_out.xsl")
' Transform the file and output an HTML string.
Dim HTMLoutput As String
Dim writer As New StringWriter()
xslt.Transform("books.xml", Nothing, writer)
HTMLoutput = writer.ToString()
writer.Close()
注釈
このメソッドは、ユーザー資格情報のない既定の XmlUrlResolver を使用して、入力ドキュメントと、スタイル シート内にある XSLT document() 関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソースにある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
入力ドキュメントを読み込むには、既定の設定の XmlReader が使用されます。 XmlReaderで DTD 処理が無効になっています。 DTD 処理が必要な場合は、この機能を有効にして XmlReader を作成し、 Transform メソッドに渡します。
こちらもご覧ください
適用対象
Transform(String, XsltArgumentList, Stream)
URI で指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::IO::Stream ^ results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.IO.Stream results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.IO.Stream results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.IO.Stream -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As Stream)
パラメーター
- inputUri
- String
入力ドキュメントの URI。
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- Stream
出力先のストリーム。
例外
inputUri値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
inputUri値にファイル名またはディレクトリが含まれていますが見つかりません。
inputUri が有効な URI ではありません。
入力ドキュメントの読み込み中に解析エラーが発生しました。
注釈
このメソッドは、ユーザー資格情報のない既定の XmlUrlResolver を使用して、入力ドキュメントと、スタイル シート内にある XSLT document() 関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソースにある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
入力ドキュメントを読み込むには、既定の設定の XmlReader が使用されます。 XmlReaderで DTD 処理が無効になっています。 DTD 処理が必要な場合は、この機能を有効にして XmlReader を作成し、 Transform メソッドに渡します。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XmlWriter)
IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をXmlWriterに出力します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.XmlWriter -> unit
Public Sub Transform (input As IXPathNavigable, results As XmlWriter)
パラメーター
- input
- IXPathNavigable
IXPathNavigable インターフェイスを実装するオブジェクト。 Microsoft .NET Framework では、XmlNode (通常は XmlDocument)、または変換するデータを含む XPathDocumentのいずれかを指定できます。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
例
次の例では、XSLT 変換を実行し、 XmlWriter オブジェクトに出力します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform(new XPathDocument("books.xml"), writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform(New XPathDocument("books.xml"), writer)
writer.Close()
注釈
XSLT document() 関数が有効になっている場合、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
このメソッドは、 xsl:strip-space 要素をサポートしていません。 コンパイル済みのスタイル シートにxsl:strip-space要素が含まれている場合は、Transformを入力引数として受け取るXmlReaderオーバーロードを使用する必要があります。
IXPathNavigable インターフェイスは、XmlNode クラスと XPathDocument クラスに実装されます。 これらのクラスは、XML データのメモリ内キャッシュを表します。
XmlNode クラスは W3C ドキュメント オブジェクト モデル (DOM) に基づいており、編集機能が含まれています。
XPathDocument クラスは、XPath データ モデルに基づく読み取り専用のデータ ストアです。 XPathDocument は XSLT 処理に推奨されるクラスです。 XmlNode クラスと比較すると、パフォーマンスが向上します。
変換はドキュメント全体に適用されます。 つまり、ドキュメント ルート ノード以外のノードを渡しても、変換プロセスが読み込まれたドキュメント内のすべてのノードにアクセスできなくなるわけではありません。 ノード フラグメントを変換するには、ノード フラグメントのみを含むオブジェクトを作成し、そのオブジェクトを Transform メソッドに渡す必要があります。 詳細については、「 方法: ノード フラグメントを変換する」を参照してください。
こちらもご覧ください
適用対象
Transform(XmlReader, XmlWriter)
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::XmlWriter ^ results);
public void Transform(System.Xml.XmlReader input, System.Xml.XmlWriter results);
member this.Transform : System.Xml.XmlReader * System.Xml.XmlWriter -> unit
Public Sub Transform (input As XmlReader, results As XmlWriter)
パラメーター
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
例
次の使用例は、books.xml ファイル内の最初のブックを変換します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
XmlReader reader = XmlReader.Create("books.xml");
reader.MoveToContent();
// Execute the transformation.
xslt.Transform(reader, writer);
writer.Close();
reader.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
Dim reader As XmlReader = XmlReader.Create("books.xml")
reader.MoveToContent()
' Execute the transformation.
xslt.Transform(reader, writer)
writer.Close()
reader.Close()
注釈
XSLT document() 関数が有効になっている場合、ユーザー資格情報のない XmlUrlResolver を使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
こちらもご覧ください
適用対象
Transform(String, XmlWriter)
URI で指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriterに出力します。
public:
void Transform(System::String ^ inputUri, System::Xml::XmlWriter ^ results);
public void Transform(string inputUri, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, results As XmlWriter)
パラメーター
- inputUri
- String
入力ドキュメントの URI。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
例外
inputUri値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
inputUri値にファイル名またはディレクトリが含まれていますが見つかりません。
inputUri が有効な URI ではありません。
入力ドキュメントの読み込み中に解析エラーが発生しました。
例
次の例では、XSLT 変換を実行し、 XmlWriter オブジェクトに出力します。
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");
// Create the writer.
XmlWriterSettings settings = new XmlWriterSettings();
settings.Indent = true;
settings.IndentChars = "\t";
XmlWriter writer = XmlWriter.Create("output.xml", settings);
// Execute the transformation.
xslt.Transform("books.xml", writer);
writer.Close();
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
' Create the writer.
Dim settings As New XmlWriterSettings()
settings.Indent = True
settings.IndentChars = vbTab
Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings)
' Execute the transformation.
xslt.Transform("books.xml", writer)
writer.Close()
注釈
このメソッドは、ユーザー資格情報のない既定の XmlUrlResolver を使用して、入力ドキュメントと、スタイル シート内にある XSLT document() 関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソースにある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
入力ドキュメントを読み込むには、既定の設定の XmlReader が使用されます。 XmlReaderで DTD 処理が無効になっています。 DTD 処理が必要な場合は、この機能を有効にして XmlReader を作成し、 Transform メソッドに渡します。
このメソッドは、 xsl:strip-space 要素をサポートしていません。 コンパイル済みのスタイル シートにxsl:strip-space要素が含まれている場合は、Transformを入力引数として受け取るXmlReaderオーバーロードを使用する必要があります。
こちらもご覧ください
適用対象
Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)
XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をXmlWriterに出力します。
XsltArgumentListは追加のランタイム引数を提供し、XmlResolver は XSLT document()関数を解決します。
public:
void Transform(System::Xml::XmlReader ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform(System.Xml.XmlReader input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XmlReader * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As XmlReader, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
パラメーター
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
- documentResolver
- XmlResolver
XSLT XmlResolver関数の解決に使用されるdocument()。 これが null場合、 document() 関数は解決されません。
例外
input値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
例
次の例では、 XmlSecureResolver を使用して XSLT document() 関数を解決します。
// Create a resolver and specify the necessary credentials.
XmlSecureResolver resolver = new XmlSecureResolver(new XmlUrlResolver(), "http://serverName/data/");
System.Net.NetworkCredential myCred;
myCred = new System.Net.NetworkCredential(UserName,SecurelyStoredPassword,Domain);
resolver.Credentials = myCred;
XsltSettings settings = new XsltSettings();
settings.EnableDocumentFunction = true;
// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver);
// Transform the file.
using (XmlReader reader = XmlReader.Create("books.xml"))
{
using (XmlWriter writer = XmlWriter.Create("output.xml"))
{
xslt.Transform(reader, null, writer, resolver);
}
}
' Create a resolver and specify the necessary credentials.
Dim resolver As New XmlSecureResolver(New XmlUrlResolver(), "http://serverName/data/")
Dim myCred As System.Net.NetworkCredential
myCred = New System.Net.NetworkCredential(UserName, SecurelyStoredPassword, Domain)
resolver.Credentials = myCred
Dim settings As New XsltSettings()
settings.EnableDocumentFunction = True
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("http://serverName/data/xsl/sort.xsl", settings, resolver)
' Transform the file.
Using reader As XmlReader = XmlReader.Create("books.xml")
Using writer As XmlWriter = XmlWriter.Create("output.xml")
xslt.Transform(reader, Nothing, writer, resolver)
End Using
End Using
こちらもご覧ください
適用対象
Transform(String, XsltArgumentList, XmlWriter)
URI で指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriterに出力します。 XsltArgumentListには、追加の実行時引数が用意されています。
public:
void Transform(System::String ^ inputUri, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results);
public void Transform(string inputUri, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results);
member this.Transform : string * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter -> unit
Public Sub Transform (inputUri As String, arguments As XsltArgumentList, results As XmlWriter)
パラメーター
- inputUri
- String
入力ドキュメントの URI。
- arguments
- XsltArgumentList
変換への入力として使用される名前空間修飾引数を含む XsltArgumentList 。 この値は、null の場合もあります。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されたXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
例外
inputUri値またはresults値がnull。
XSLT 変換の実行中にエラーが発生しました。
inputUri値にファイル名またはディレクトリが含まれていますが見つかりません。
inputUri が有効な URI ではありません。
入力ドキュメントの読み込み中に解析エラーが発生しました。
例
次の例では、 XsltArgumentList オブジェクトを使用して、現在の日時を表すパラメーターを作成します。
using System;
using System.IO;
using System.Xml;
using System.Xml.Xsl;
public class Sample
{
public static void Main()
{
// Create the XslCompiledTransform and load the stylesheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("order.xsl");
// Create the XsltArgumentList.
XsltArgumentList xslArg = new XsltArgumentList();
// Create a parameter which represents the current date and time.
DateTime d = DateTime.Now;
xslArg.AddParam("date", "", d.ToString());
// Transform the file.
using (XmlWriter w = XmlWriter.Create("output.xml"))
{
xslt.Transform("order.xml", xslArg, w);
}
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.Xsl
Public Class Sample
Public Shared Sub Main()
' Create the XslCompiledTransform and load the stylesheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("order.xsl")
' Create the XsltArgumentList.
Dim xslArg As New XsltArgumentList()
' Create a parameter which represents the current date and time.
Dim d As DateTime = DateTime.Now
xslArg.AddParam("date", "", d.ToString())
Using w As XmlWriter = XmlWriter.Create("output.xml")
' Transform the file.
xslt.Transform("order.xml", xslArg, w)
End Using
End Sub
End Class
この例では、次の 2 つのデータ ファイルを入力として使用します。
order.xml
<!--Represents a customer order-->
<order>
<book ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<cd ISBN='2-3631-4'>
<title>Americana</title>
<price>16.95</price>
</cd>
</order>
order.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="date"/>
<xsl:template match="/">
<order>
<date><xsl:value-of select="$date"/></date>
<total><xsl:value-of select="sum(//price)"/></total>
</order>
</xsl:template>
</xsl:stylesheet>
注釈
このメソッドは、ユーザー資格情報のない既定の XmlUrlResolver を使用して、入力ドキュメントと、スタイル シート内にある XSLT document() 関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソースにある場合は、 XmlResolver を引数の 1 つとして受け取り、必要な資格情報で XmlResolver を指定するオーバーロードを使用します。
入力ドキュメントを読み込むには、既定の設定の XmlReader が使用されます。 XmlReaderで DTD 処理が無効になっています。 DTD 処理が必要な場合は、この機能を有効にして XmlReader を作成し、 Transform メソッドに渡します。
こちらもご覧ください
適用対象
Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)
IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をXmlWriterに出力します。
XsltArgumentListは追加のランタイム引数を提供し、XmlResolverは XSLT document()関数を解決します。
public:
void Transform(System::Xml::XPath::IXPathNavigable ^ input, System::Xml::Xsl::XsltArgumentList ^ arguments, System::Xml::XmlWriter ^ results, System::Xml::XmlResolver ^ documentResolver);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList? arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver? documentResolver);
public void Transform(System.Xml.XPath.IXPathNavigable input, System.Xml.Xsl.XsltArgumentList arguments, System.Xml.XmlWriter results, System.Xml.XmlResolver documentResolver);
member this.Transform : System.Xml.XPath.IXPathNavigable * System.Xml.Xsl.XsltArgumentList * System.Xml.XmlWriter * System.Xml.XmlResolver -> unit
Public Sub Transform (input As IXPathNavigable, arguments As XsltArgumentList, results As XmlWriter, documentResolver As XmlResolver)
パラメーター
- input
- IXPathNavigable
IXPathNavigable オブジェクトによって指定された変換するドキュメント。
- arguments
- XsltArgumentList
XsltArgumentListとしての引数リスト。
- results
- XmlWriter
出力先の XmlWriter 。
スタイル シートにxsl:output要素が含まれている場合は、XmlWriter プロパティから返されるXmlWriterSettings オブジェクトを使用してOutputSettingsを作成する必要があります。 これにより、 XmlWriter に正しい出力設定が確実に設定されます。
- documentResolver
- XmlResolver
XSLT XmlResolver関数の解決に使用されるdocument()。 これが null場合、 document() 関数は解決されません。