Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#将XSL应用于带有xsltargument的XML?_C#_Asp.net_.net - Fatal编程技术网

如何使用c#将XSL应用于带有xsltargument的XML?

如何使用c#将XSL应用于带有xsltargument的XML?,c#,asp.net,.net,C#,Asp.net,.net,我有一个用户控件,希望在其中将页面url传递到XSL表,并将其应用到XML文件。因此,它应该产生一些HTML输出。请解释一下怎么做 xml file name: myXml.xml Xsl file name: mwXsl.xsl Parameter to be passed by usercontrol(.cs) file: url of parent page. 我已经定义了XSL样式表。我要做的就是把参数传给那个文件。在usercontrol(ascx)文件中,我有以下代码 <a

我有一个用户控件,希望在其中将页面url传递到XSL表,并将其应用到XML文件。因此,它应该产生一些HTML输出。请解释一下怎么做

xml file name: myXml.xml 
Xsl file name: mwXsl.xsl
Parameter to be passed by usercontrol(.cs) file: url of parent page.
我已经定义了XSL样式表。我要做的就是把参数传给那个文件。在usercontrol(ascx)文件中,我有以下代码

<asp:Xml ID="BControl" runat="server" DocumentSource="/wsitemap.sitemap" TransformSource="/Bread.xslt"></asp:Xml>

但是这段代码不起作用,请告诉我您使用的任何其他方法,
XsltArgumentList
C#类来传递参数。您可以在那里添加所有参数并传递到xsl

请查看以下SO链接

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)
    {
        string curPageId = Page.Request.Url.AbsoluteUri;
        XsltArgumentList xslArgs = new XsltArgumentList();
        xslArgs.AddParam("curPage", "", curPageId);
        string output=Transform("wsitemap.sitemap","bread.xslt",xslArgs);
        Response.Clear(); Response.Write(output);
    }