XsltArgumentList.AddParam(String, String, Object) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Fügt der XsltArgumentList einen Parameter hinzu und ordnet diesem den durch einen Namespace gekennzeichneten Namen zu.
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)
Parameter
- name
- String
Der Name, der dem Parameter zugeordnet werden soll.
- namespaceUri
- String
Der Namespace-URI, der dem Parameter zugeordnet werden soll. Um den Standardnamespace verwenden zu können, geben Sie eine leere Zeichenfolge an.
- parameter
- Object
Der Parameterwert oder das Objekt, der bzw. das der Liste hinzugefügt werden soll.
Ausnahmen
namespaceUri
ist entweder null
oder http://www.w3.org/1999/XSL/Transform.
Der name
ist kein gültiger Name entsprechend der W3C-Spezifikation zu XML.
Dem namespaceUri
ist bereits ein Parameter zugeordnet.
Beispiele
Im folgenden Beispiel wird die Methode verwendet, um einen Parameter zu erstellen, der das aktuelle Datum und die AddParam aktuelle Uhrzeit darstellt.
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
Im Beispiel werden die folgenden beiden Datendateien als Eingabe verwendet.
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>
Hinweise
Dies parameter
sollte einem W3C-Typ entsprechen. Die folgende Tabelle zeigt die W3C-Typen, entweder XPath oder XSLT, und die corresponding.NET Klasse.
W3C-Typ | Equivalent.NET Klasse (Typ) |
---|---|
String (XPath) |
String |
Boolean (XPath) |
Boolean |
Number (XPath) |
Double |
Result Tree Fragment (XSLT) |
XPathNavigator |
Node Set (XPath) |
XPathNodeIteratorXPathNavigator[] |
Node * (XPath) |
XPathNavigator |
*Dies entspricht einer Knotengruppe, die einen Knoten enthält.
Wenn das parameterobjekt, das innerhalb des Stylesheets aufgerufen wird, nicht einer der oben genannten Ist, wird er gemäß den folgenden Regeln konvertiert:
Numerische CLR-Typen werden in Double konvertiert.
IXPathNavigable-Typen werden in XPathNavigator konvertiert.
XPathNavigator[]
wird in XPathNodeIterator.
Alle anderen Typen lösen einen Fehler aus.