次の方法で共有


XsltArgumentList.AddParam(String, String, Object) メソッド

定義

パラメーターを XsltArgumentList に追加し、それを名前空間限定名に関連付けます。

public:
 void AddParam(System::String ^ name, System::String ^ namespaceUri, System::Object ^ parameter);
public void AddParam (string name, string namespaceUri, object parameter);
member this.AddParam : string * string * obj -> unit
Public Sub AddParam (name As String, namespaceUri As String, parameter As Object)

パラメーター

name
String

パラメーターに関連付ける名前。

namespaceUri
String

パラメーターに関連付ける名前空間 URI。 既定の名前空間を使用するには、空の文字列を指定します。

parameter
Object

リストに追加するパラメーター値またはオブジェクト。

例外

namespaceUrinull または http://www.w3.org/1999/XSL/Transform です。

name が、W3C XML 仕様に準拠した有効な名前ではありません。

namespaceUri には、既にパラメーターが関連付けられています。

次の例では、 メソッドを AddParam 使用して、現在の日付と時刻を表すパラメーターを作成します。

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>

注釈

parameter W3C 型に対応している必要があります。 次の表に、XPath または XSLT のいずれかの W3C 型と、corresponding.NET クラスを示します。

W3C 型 Equivalent.NET クラス (型)
String (XPath) String
Boolean (XPath) Boolean
Number (XPath) Double
Result Tree Fragment (XSLT) XPathNavigator
Node Set (XPath) XPathNodeIterator

XPathNavigator[]
Node* (XPath) XPathNavigator

\* これは単一のノードを含むノード セットに相当します。

スタイル シート内から呼び出されるパラメーター オブジェクトが上記のいずれかでない場合は、次の規則に従って変換されます。

その他の型はエラーになります。

適用対象

こちらもご覧ください