代码之家  ›  专栏  ›  技术社区  ›  Brian

XmlResolver编译错误

  •  0
  • Brian  · 技术社区  · 16 年前

    所以,我正在尝试使用XMLresolver加载XML文件。当我从文件名创建一个xmlreader时,它工作得很好,但是当我使用一个stringreader创建时失败了。它给了我一个 XslLoadException: XSLT compiler error. 内部异常是 "An entry with the same key already exists."

        public override object GetEntity(Uri absoluteUri, string role, Type ofObjectToReturn)
        {
            string f = Path.Combine(@"C:\tmp", Path.GetFileName(absoluteUri.ToString()));
            string testaxCont = @"<xsl:stylesheet xmlns:xsl=""http://www.w3.org/1999/XSL/Transform"" version=""1.0""><xsl:template name=""J""/></xsl:stylesheet>";
            string testaxCont2 = File.ReadAllText(f);
            bool j = testaxCont.Equals(testaxCont2); //This equals true
            XmlReader tmp = XmlReader.Create(new StringReader(File.ReadAllText(f))); //crash
    //            XmlReader tmp = XmlReader.Create(f); //don't crash
            return tmp;
        }
    

    testax.xslt    
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:include href="testax2.xsl" /></xsl:stylesheet>
    
    testax2.xsl
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"><xsl:template name="J"/></xsl:stylesheet>
    
    1 回复  |  直到 16 年前
        1
  •  2
  •   Brian    16 年前

    我需要把断线改成 XmlReader tmp = XmlReader.Create(new StringReader(File.ReadAllText(f)),null,f); 对于文件,它有一个基URI,但缺少一个字符串。