如何使用c#将XSL应用于带有xsltargument的XML?
我有一个用户控件,希望在其中将页面url传递到XSL表,并将其应用到XML文件。因此,它应该产生一些HTML输出。请解释一下怎么做如何使用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
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);
}