Parameter XSLT
Parameter XSLT ditambahkan ke XsltArgumentList menggunakan AddParam metode. Nama dan namespace layanan URI yang memenuhi syarat dikaitkan dengan objek ekstensi pada saat itu.
Untuk menggunakan parameter XSLT
Buat XsltArgumentList objek dan tambahkan parameter menggunakan AddParam metode.
Panggil parameter dari lembar gaya.
Teruskan XsltArgumentList objek ke Transform metode.
Jenis parameter
Objek parameter harus sesuai dengan jenis W3C. Tabel berikut menunjukkan jenis W3C yang sesuai, kelas (jenis) Microsoft .NET yang setara, dan apakah jenis W3C adalah jenis JalurX atau jenis XSLT.
Jenis W3C | Kelas .NET yang setara (jenis) | Jenis XPath atau XSLT |
---|---|---|
String |
System.String | XPath |
Boolean |
System.Boolean | XPath |
Number |
System.Double | XPath |
Result Tree Fragment |
System.Xml.XPath.XPathNavigator | XSLT |
Node* |
System.Xml.XPath.XPathNavigator | XPath |
Node Set |
XPathNodeIterator XPathNavigator[] |
XPath |
*Ini setara dengan set simpul yang berisi satu simpul.
Jika objek parameter bukan salah satu kelas di atas, objek tersebut dikonversi sesuai dengan aturan berikut. Jenis numerik runtime bahasa umum (CLR) dikonversi menjadi Double. DateTime Jenis dikonversi menjadi String. IXPathNavigable jenis dikonversi menjadi XPathNavigator. XPathNavigator[] dikonversi menjadi XPathNodeIterator.
Semua jenis lainnya melemparkan kesalahan.
Contoh
Contoh berikut menggunakan AddParam metode untuk membuat parameter untuk menahan tanggal diskon terhitung. Tanggal diskon dihitung menjadi 20 hari sejak tanggal pesanan.
using System;
using System.IO;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
public class Sample {
public static void Main() {
// Create the XslCompiledTransform and load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("discount.xsl");
// Create the XsltArgumentList.
XsltArgumentList argList = new XsltArgumentList();
// Calculate the discount date.
DateTime orderDate = new DateTime(2004, 01, 15);
DateTime discountDate = orderDate.AddDays(20);
argList.AddParam("discount", "", discountDate.ToString());
// Create an XmlWriter to write the output.
XmlWriter writer = XmlWriter.Create("orderOut.xml");
// Transform the file.
xslt.Transform(new XPathDocument("order.xml"), argList, writer);
writer.Close();
}
}
Imports System.IO
Imports System.Xml
Imports System.Xml.XPath
Imports System.Xml.Xsl
public class Sample
public shared sub Main()
' Create the XslCompiledTransform and load the style sheet.
Dim xslt as XslCompiledTransform = new XslCompiledTransform()
xslt.Load("discount.xsl")
' Create the XsltArgumentList.
Dim argList as XsltArgumentList = new XsltArgumentList()
' Calculate the discount date.
Dim orderDate as DateTime = new DateTime(2004, 01, 15)
Dim discountDate as DateTime = orderDate.AddDays(20)
argList.AddParam("discount", "", discountDate.ToString())
' Create an XmlWriter to write the output.
Dim writer as XmlWriter = XmlWriter.Create("orderOut.xml")
' Transform the file.
xslt.Transform(new XPathDocument("order.xml"), argList, writer)
writer.Close()
end sub
end class
Input
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>
discount.xsl
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:param name="discount"/>
<xsl:template match="/">
<order>
<xsl:variable name="sub-total" select="sum(//price)"/>
<total><xsl:value-of select="$sub-total"/></total>
15% discount if paid by: <xsl:value-of select="$discount"/>
</order>
</xsl:template>
</xsl:stylesheet>
Output
<?xml version="1.0" encoding="utf-8"?>
<order>
<total>36.9</total>
15% discount if paid by: 2/4/2004 12:00:00 AM
</order>
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk