How to Make xslt style sheets accept parameters
We often need to share a style sheet to convert multiple copies of data. Their difference may be that there are some small differences on the top. How can we solve this problem?
1. Define parameters in XSLT
<? Xml version = "1.0" encoding = "utf-8"?>
<Xsl: stylesheet version = "1.0" xmlns: xsl = "http://www.w3.org/1999/XSL/Transform"
Xmlns: msxsl = "urn: schemas-microsoft-com: xslt" exclude-result-prefixes = "msxsl"
>
<Xsl: output method = "xml" indent = "yes"/>
<Xsl: param name = "Title"> </xsl: param>
<Xsl: template match = "/">
<Html>
<Head> <Body>
<H1>
<Xsl: value-of select = "$ Title"/>
</H1>
</Body>
</Html>
</Xsl: template>
</Xsl: stylesheet>
2. Pass a parameter in the client code.
Using System;
Using System. Collections. Generic;
Using System. Text;
Using System. Xml. Xsl;
Using System. Xml. XPath;
Using System. Xml;
Using System. IO;
Namespace ConsoleApplication1
{
Class Program
{
Static void Main (string [] args)
{
XmlDocument doc = new XmlDocument ();
Doc. LoadXml ("<Tables> <Table> <Name> Orders </Name> </T able> </Tables> ");
Extends compiledtransform tran = new extends compiledtransform ();
Tran. Load ("Test. xslt ");
Inclutargumentlist a = new inclutargumentlist ();
A. AddParam ("Title", string. Empty, "Chen xizhang's Report ");
FileStream stream = new FileStream ("Test.htm", FileMode. Create );
Tran. Transform (doc. CreateNavigator (), a, stream );
Stream. Close ();
}
}
}