ページの 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 スタイルシートを定義しました。そのファイルに引数を渡す必要があるだけです。ユーザーコントロール(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);
}
しかし、このコードは機能していません。他のアプローチを教えてください