Passing XmlResolver to Transform() method
-
Hi, I have a method to render HTML from XSLT. Here is the method: /// /// Method that renders HTML from XSLT document /// /// protected override void Render(HtmlTextWriter writer) { XPathDocument xdoc = new XPathDocument(Context.Server.MapPath(sourceFilePath)); XslTransform xslt = new XslTransform(); xslt.Load(Context.Server.MapPath(transformFilePath)); xslt.Transform(xdoc, null, writer); } I am now getting this warning: warning CS0618: 'System.Xml.Xsl.XslTransform.Transform(System.Xml.XPath.IXPathNavigable, System.Xml.Xsl.XsltArgumentList, System.IO.TextWriter)' is obsolete: 'You should pass XmlResolver to Transform() method' I need some help resolving this warning. Can you help? Kyle
-
Hi, I have a method to render HTML from XSLT. Here is the method: /// /// Method that renders HTML from XSLT document /// /// protected override void Render(HtmlTextWriter writer) { XPathDocument xdoc = new XPathDocument(Context.Server.MapPath(sourceFilePath)); XslTransform xslt = new XslTransform(); xslt.Load(Context.Server.MapPath(transformFilePath)); xslt.Transform(xdoc, null, writer); } I am now getting this warning: warning CS0618: 'System.Xml.Xsl.XslTransform.Transform(System.Xml.XPath.IXPathNavigable, System.Xml.Xsl.XsltArgumentList, System.IO.TextWriter)' is obsolete: 'You should pass XmlResolver to Transform() method' I need some help resolving this warning. Can you help? Kyle
kyledunn wrote: I need some help resolving this warning. Can you help? Try this:
protected override void Render(HtmlTextWriter writer)
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load(Context.Server.MapPath(sourceFilePath));
XPathNavigator nav = xdoc.CreateNavigator();
XslTransform xslt = new XslTransform();
xslt.Load(Context.Server.MapPath(transformFilePath));
xslt.Transform(nav, null, writer);
}-Nick Parker
-
kyledunn wrote: I need some help resolving this warning. Can you help? Try this:
protected override void Render(HtmlTextWriter writer)
{
XmlDocument xdoc = new XmlDocument();
xdoc.Load(Context.Server.MapPath(sourceFilePath));
XPathNavigator nav = xdoc.CreateNavigator();
XslTransform xslt = new XslTransform();
xslt.Load(Context.Server.MapPath(transformFilePath));
xslt.Transform(nav, null, writer);
}-Nick Parker
Thank you Nick! I did need to use an XPathNavigator but even then the error message about using XmlResolver still appeared. Upon further research I found that XmlResolver is a argument in the Transform method. Transform(XPathNavigator, XsltArgumentList, TextWriter, XmlResolver); I still have no clue as to when or why to use a XmlResolver but found when I inserted a null for the arguemnt that the error disappeared. Transform(nav,null,writer,null); I suspect you can create custom resolvers to influence the Transform but that's for another day. Problem solved. Thank you. Kyle