XsltArgumentList.AddParam(String, String, Object) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Voegt een parameter toe aan de XsltArgumentList parameter en koppelt deze aan de naamruimte gekwalificeerde naam.
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)
Parameters
- name
- String
De naam die moet worden gekoppeld aan de parameter.
- namespaceUri
- String
De naamruimte-URI die moet worden gekoppeld aan de parameter. Als u de standaardnaamruimte wilt gebruiken, geeft u een lege tekenreeks op.
- parameter
- Object
De parameterwaarde of het object dat u aan de lijst wilt toevoegen.
Uitzonderingen
De namespaceUri is of nullhttp://www.w3.org/1999/XSL/Transform.
Het name is geen geldige naam volgens de W3C XML-specificatie.
Er namespaceUri is al een parameter aan gekoppeld.
Voorbeelden
In het volgende voorbeeld wordt de AddParam methode gebruikt om een parameter te maken die de huidige datum en tijd vertegenwoordigt.
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
In het voorbeeld worden de volgende twee gegevensbestanden als invoer gebruikt.
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>
Opmerkingen
Het parameter moet overeenkomen met een W3C-type. In de volgende tabel ziet u de W3C-typen, XPath of XSLT, en de bijbehorende klasse.NET.
| W3C-type | Equivalent.NET klasse (type) |
|---|---|
String (XPath) |
String |
Boolean (XPath) |
Boolean |
Number (XPath) |
Double |
Result Tree Fragment (XSLT) |
XPathNavigator |
Node Set (XPath) |
XPathNodeIteratorXPathNavigator[] |
Node* (XPath) |
XPathNavigator |
*Dit komt overeen met een knooppuntset die één knooppunt bevat.
Als het parameterobject dat vanuit het opmaakmodel wordt aangeroepen, niet een van de bovenstaande is, wordt het geconverteerd volgens de volgende regels:
CLR-numerieke typen worden omgezet naar Double.
IXPathNavigable typen worden geconverteerd naar XPathNavigator.
XPathNavigator[]wordt geconverteerd naar XPathNodeIterator.
Alle andere typen veroorzaken een fout.