如何解决将参数从C#.cs传递到.xslt
| 我正在尝试找到一种简单的方法,将参数从C#类文件(.cs)传递到.xslt文件。我并没有真正使用.xml文件,所以我不知道是否有类似http://msdn.microsoft.com/zh-cn/library/system.xml.xsl.xsltargumentlist.addparam的文件。 aspx将为我工作。另外,我没有main方法,因为它只是一个类(全部在.net中完成)。有人知道这样做的可能方法吗? protected void Page_Load(object sender,EventArgs e)
{
XsltSettings settings = new XsltSettings();
settings.EnableScript = true;
FetchQuote();
// Create the XslCompiledTransform and load the stylesheet
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load(\"Home.xslt\");
// Create the XsltArgumentList
XsltArgumentList xslArg = new XsltArgumentList();
// Add parameters
xslArg.AddParam(\"chart_url\",\"\",\"Chart_Url\");
xslArg.AddParam(\"last\",\"Last\");
xslArg.AddParam(\"change\",\"Change\");
xslArg.AddParam(\"perc_change\",\"Perc_Change\");
// Transform the File
using (XmlWriter w = XmlWriter.Create(\"output.xml\"))
{
xslt.Transform(\"\",xslArg,w);
}
}
解决方法
xsl:
<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>
<xsl:stylesheet version=\"1.0\" xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\"
xmlns:fo=\"http://www.w3.org/1999/XSL/Format\" xmlns:kso=\"nothin\">
<xsl:param name=\"yourParam\" />
public static string Transform(string xml,string xsl,XsltArgumentList argsList)
{
XDocument selectedXml = XDocument.Parse(xml);
XslCompiledTransform xmlTransform = new XslCompiledTransform();
StringBuilder htmlOutput = new StringBuilder();
XmlWriter writer = XmlWriter.Create(htmlOutput);
xmlTransform.Load(new XmlTextReader(new StringReader(xsl)));
xmlTransform.Transform(selectedXml.CreateReader(),argsList,writer);
return htmlOutput.ToString();
}
protected void Page_Load(object sender,EventArgs e)
{
XsltArgumentList xslArg = new XsltArgumentList();
// Add parameters
xslArg.AddParam(\"chart_url\",\"\",\"Chart_Url\");
xslArg.AddParam(\"last\",\"Last\");
xslArg.AddParam(\"change\",\"Change\");
xslArg.AddParam(\"perc_change\",\"Perc_Change\");
string output=Transform(string.empty,\"Home.xslt\",xslArg );
Response.Clear();
Response.Write(output);
//or:
//string output=Transform(\"<xmlroot/>\",xslArg );
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。