将参数从C#.cs传递到.xslt

将参数从C#.cs传递到.xslt,c#,.net,xslt,parameters,C#,.net,Xslt,Parameters,我试图找到一种简单的方法,将参数从C#class文件(.cs)传递到.xslt文件。我并没有真正使用.xml文件,所以我不知道这样的东西是否适合我。另外,我没有main方法,因为它只是一个类(这都是在.net中完成的)。有人知道这样做的可能方法吗 protected void Page_Load(object sender, EventArgs e) { XsltSettings settings = new XsltSettings();

我试图找到一种简单的方法,将参数从C#class文件(.cs)传递到.xslt文件。我并没有真正使用.xml文件,所以我不知道这样的东西是否适合我。另外,我没有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、字符串xsl、XsltArgumentList argsList)
{
XDocument selectedXml=XDocument.Parse(xml);
XslCompiledTransform xmlTransform=新的XslCompiledTransform();
StringBuilder htmlOutput=新建StringBuilder();
XmlWriter=XmlWriter.Create(htmlOutput);
Load(新的XmlTextReader(新的StringReader(xsl));
Transform.Transform(selectedXml.CreateReader(),argsList,writer);
返回htmlOutput.ToString();
}
受保护的无效页面加载(对象发送方、事件参数e)
{
XsltArgumentList xslArg=new XsltArgumentList();
//添加参数
AddParam(“图表url”,“图表url”);
AddParam(“last”、“last”、“last”);
xslArg.AddParam(“更改”、“更改”);
AddParam(“perc_change”、“perc_change”、“perc_change”);
字符串输出=转换(string.empty,“Home.xslt”,xslArg);
Response.Clear();
响应。写入(输出);
//或:
//字符串输出=转换(“,”Home.xslt“,xslArg);
}

您需要给我们举一个更好的例子。现在,我们不可能知道你到底想要什么。@Justin Niessner是对的,很难理解你需要什么。好吧,我不知道怎么解释。我想传递.cs文件中的一些字符串值。所有这些文件都是大型网站的一部分。我们正在这个.cs文件中从web检索一些信息(来自google finance api)。我需要将这些信息输入到我的.xslt文件(它定义了这个网站的主页)中,我不知道我还可以发布任何代码。这样行吗,还是你还需要更多的规格?(我希望能够使用我在.xslt文件的.cs文件中检索到的这些字符串值)我应该如何利用这些值?你知道我只有一个.xslt文件要处理,我没有一个单独的“.xml”和“.xsl”文件,对吗?事实上,我有一个从url检索信息的方法,比如:XDocument doc=XDocument.Load(url);(url是我从中检索信息的google api的url)您可以传递空xml字符串或空xml根节点。如果你不需要的话!另外,检索.cs文件(没有main方法的文件)中的所有数据是否会影响我。我看到的所有示例都使用main方法。这个转换方法获取参数并返回字符串,数据来自何处并不重要。
<?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/>","Home.xslt",xslArg );
 }