我有一个用户控件,我想在其中将页面 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>
其中 wsitemap.sitemap 是一个 XML 文件。如果我的 XSLT 得到参数,上面的代码将能够产生所需的输出。所以我需要 C# 代码。
在用户控件(.cs 文件)中,我有:
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);
}
但是这段代码不起作用,请告诉我任何其他方法