Tag: xslcompiledtransform

如何解决XSL包含在从String加载XSL的转换中?

.NET 2.0 / VS2005 我试图使用XslCompiledTransform类来执行XSL转换。 我有两个XSL文件,第一个包含对语句forms的另一个引用: Main.xsl: … … 现在,如果我可以将“Main.xsl”文件本身作为URI加载,我的转换代码就像下面这样简单: // This is a function that works. For demo only. private string Transform(string xslFileURI) { XslCompiledTransform xslt = new XslCompiledTransform(); // This load works just fine, if I provide the path to “Main.xsl”. // The xsl:include is automatically resolved. xslTransform.Load(xslFileURI); StringWriter sw = new StringWriter(); […]

XslCompiledTransform和自定义XmlUrlResolver:“具有相同键的条目已存在”

有没有办法调试由自定义XmlUrlResolver从数据库加载的XSLT文档,或者有人知道,下面的错误消息是什么? 我有一个XSLT样式表导入一个常见的xslt文档: Scheme由一个自定义的XmlResolver处理,它从数据库加载XSLT文档,但是我收到一个错误: 已存在具有相同密钥的条目。 xsl:import引用的公共XSLT文档包含一些常见的XSLT模板,每个模板都有一个唯一的名称。 将XSLT文档从本地文件系统移动到数据库后,此错误开始发生。 使用指向本地文件的默认导入方案时以及从本地文件系统加载XSLT文档时,不会发生错误。 我还尝试在创建XslCompiledTransform的实例时打开调试,但不知何故不可能“进入”基于数据库的XSLT。 _xslHtmlOutput = new XslCompiledTransform(XSLT_DEBUG); 更新:以下基本上是请求的解析器​​代码,但我的代码中没有发生exception; 因此,我想在下面的代码中没有明显的原因。 (这个相同的代码实际上用于加载包含导入的XSLT样式表,当注释掉导入时,一切都按预期工作。) public class XmlDBResolver : XmlUrlResolver { private IDictionary GetUriComponents(String uri) { bool useXmlPre = false; uri = uri.Replace(“db://”, “”); useXmlPre = uri.StartsWith(“xml/”); uri = uri.Replace(“xml/”, “”); IDictionary dict = new Dictionary(); string app = null, area = null, subArea = […]

通过.NET将参数传递给XSLT样式表

我正在尝试将参数传递给XSLT样式表,但是当使用XSlCompiledTransform转换文档时,我得到的是一个空的xml文档。 这是用于添加参数的C#方法(在添加人们的建议之后) private static void CreateHierarchy(string manID) { string man_ID = manID; XsltArgumentList argsList = new XsltArgumentList(); argsList.AddParam(“Boss_ID”,””,man_ID); XslCompiledTransform transform = new XslCompiledTransform(); transform.Load(“htransform.xslt”); using (StreamWriter sw = new StreamWriter(“output.xml”)) { transform.Transform(“LU AIB.xml”, argsList, sw); } } 这是样式表。 我传入的参数是’Boss_ID’ type=”text/xsl” href=”..\styles\orgcharts.xsl” 我无法发布所有输入文档,因为它是机密信息,但这里是一个简短的清理版本 有人可以帮忙吗? 谢谢