首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XslCompiledTransform编译错误

XslCompiledTransform编译错误
EN

Stack Overflow用户
提问于 2011-04-21 22:53:25
回答 1查看 2.9K关注 0票数 1

我在Empty.xslt文件中有这个xslt样式表:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:msxsl="urn:schemas-microsoft-com:xslt" xmlns:nrki="http://www.essox.cz/xslt/nrki" xmlns:date="http://www.essox.cz/xslt/date" version="1.0" exclude-result-prefixes="msxsl" extension-element-prefixes="nrki date"> <xsl:import href="C:\Users\pparik.ESSOX\Desktop\Xslt\General.xslt" /> <xsl:import href="C:\Users\pparik.ESSOX\Desktop\Xslt\Nrki\General.xslt" /> <xsl:output method="text" indent="yes" /> <xsl:template match="@* | node()"> <xsl:if test="nrki:IsInLastDays('15042011', 6)"> je </xsl:if> </xsl:template> </xsl:stylesheet>

当我选择菜单项(在Visual studio中) XML /显示XSLT输出时,我得到了正确的结果。但是当我尝试使用代码(XslCompiledTransform)做同样的事情时,我得到了编译错误异常。

代码语言:javascript
复制
string output = string.Empty;
XslCompiledTransform transform = new XslCompiledTransform(true);
XsltSettings sett = new XsltSettings(true, true);
transform.Load(new XmlTextReader(@"C:\Users\pparik.ESSOX\Documents\Essox\Zdrojové kódy\SES\Visual studio\SesSolution\TestXslt\Xslt sablony\Empty.xslt"), sett, null);
StringWriter sr = new StringWriter();
transform.Transform(this.EvaluationInput.CreateNavigator(), null, sr);
output = sr.ToString();

知道为什么吗?非常感谢,Petr

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-04-21 23:04:04

请参阅传入null的位置的XmlResolver参数的注释

如果为null,则不解析外部资源。

然而,C:\Users\pparik.ESSOX\Desktop\Xslt\General.xslt 是一个外部资源。尝试传入new XmlUrlResolver()而不是null

此外,使用XmlTextReader会使加载变得过于复杂--这更容易:

代码语言:javascript
复制
transform.Load(path, sett, new XmlUrlResolver());

对于信息,您可以提供您自己的自定义解析器-例如,我编写了一个将相对路径重新映射到resx内容的解析器,这样文件就可以在IDE中正常编辑,然后作为嵌入式资源包含(但仍然正确地解析它们的同级)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5745799

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档