XslCompiledTransform.Transform メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
XSLT 変換を実行します。
オーバーロード
注釈
注意
デバッグ モードでコンパイルされた XSLT と、リリース モードでコンパイルされた XSLT には違いがあります。 状況によっては、デバッグ モードでコンパイルされたスタイル シートが、Load の間にはエラーをスローしないが、その後の Transform の間にエラーとなります。 同じスタイル シートをリリース モードでコンパイルすると、Load の間にエラーが発生します。 このような動作の 1 つの例は、ノード セット型ではない変数を、ノード セット型が必要な式に代入する場合です。
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 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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
場合は、 プロパティから返される オブジェクトをXmlWriterSettings使用して を作成XmlWriterするOutputSettings必要があります。 これにより、XmlWriter に正しい出力設定が設定されます。
例外
input
または results
の値が null
です。
XSLT 変換の実行中にエラーが発生しました。
注釈
XSLT document()
関数が有効になっている場合、ユーザー資格情報のない を XmlUrlResolver 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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
場合は、 プロパティから返される オブジェクトをXmlWriterSettings使用して を作成XmlWriterするOutputSettings必要があります。 これにより、XmlWriter に正しい出力設定が設定されます。
例外
input
または results
の値が null
です。
XSLT 変換の実行中にエラーが発生しました。
注釈
スタイル シートに XSLT document()
関数が含まれている場合、ユーザー資格情報のない を XmlUrlResolver 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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 を使用して、入力ドキュメントと出力ドキュメントを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソース上にある場合は、 を引数の 1 つとして受け取り XmlResolver 、必要な資格情報で を XmlResolver 指定するオーバーロードを使用します。
XmlReader入力ドキュメントを読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 で XmlReader無効になっています。 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()
関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソース上にある場合は、 を引数の 1 つとして受け取り XmlResolver 、必要な資格情報で を XmlResolver 指定するオーバーロードを使用します。
XmlReader入力ドキュメントを読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 で XmlReader無効になっています。 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()
関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソース上にある場合は、 を引数の 1 つとして受け取り XmlResolver 、必要な資格情報で を XmlResolver 指定するオーバーロードを使用します。
XmlReader入力ドキュメントを読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 で XmlReader無効になっています。 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
場合は、 プロパティから返される オブジェクトをXmlWriterSettings使用して を作成XmlWriterする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 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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
場合は、 プロパティから返される オブジェクトをXmlWriterSettings使用して を作成XmlWriterする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 使用して解決されます。 外部リソースが認証を必要とするネットワーク リソース上にある場合は、引数の 1 つとして を XmlResolver 受け取り、必要な資格情報で を 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
場合は、 プロパティから返される オブジェクトをXmlWriterSettings使用して を作成XmlWriterする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()
関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソース上にある場合は、 を引数の 1 つとして受け取り XmlResolver 、必要な資格情報で を XmlResolver 指定するオーバーロードを使用します。
XmlReader入力ドキュメントを読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 で XmlReader無効になっています。 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
場合は、 プロパティから返される オブジェクトをXmlWriterSettings使用して を作成XmlWriterするOutputSettings必要があります。 これにより、XmlWriter に正しい出力設定が設定されます。
- documentResolver
- XmlResolver
XSLT の document()
関数を解決するために使用する XmlResolver。 これが 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
場合は、 プロパティから返された オブジェクトをXmlWriterSettings使用して を作成XmlWriterするOutputSettings必要があります。 これにより、XmlWriter に正しい出力設定が設定されます。
例外
inputUri
または results
の値が null
です。
XSLT 変換の実行中にエラーが発生しました。
inputtUri
の値に、存在しないファイル名またはディレクトリが含まれています。
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()
関数のインスタンスを解決します。 これらのリソースのいずれかが認証を必要とするネットワーク リソース上にある場合は、 を引数の 1 つとして受け取り XmlResolver 、必要な資格情報で を XmlResolver 指定するオーバーロードを使用します。
入力ドキュメントを XmlReader 読み込むには、既定の設定を持つ が使用されます。 DTD 処理は、 XmlReaderで無効になっています。 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 の document()
関数を解決するために使用する XmlResolver。 これが null
の場合、document()
関数は解決されません。
適用対象
.NET