XmlDocument.LoadXML名称不能以'<'开头字符

时间:2013-03-06 17:23:26

标签: c# asp.net xml xml-parsing xmldocument

我收到错误“名称不能以'&lt;'开头character“当​​我尝试传递一个包含像<table>, <div> ...这样的html标签的值时,使用XsltArgumentList将项目显示到xslt文件中,将这些值传递给xslt文件,并使用XslCompiledTransform传递xslt文件的所有内容和传递的值。最后使用LoadXml加载,但会发生错误,我尝试使用“&lt;替换&lt;和&gt;替换&gt;”但错误仍然存​​在。任何人都可以给我一些建议来解决它吗?

我的代码:

var objXslt = new XslCompiledTransform();

        objXslt.Load(EmailTemplate);
        var xmlDoc = new XmlDocument();
        xmlDoc.AppendChild(xmlDoc.CreateElement("EmailMessage"));
        var xpathNav = xmlDoc.CreateNavigator();

        var xslArg = new XsltArgumentList();
        if (objDictionary != null)
        {
            foreach (DictionaryEntry entry in objDictionary)
            {
                xslArg.AddParam(entry.Key.ToString(), "", entry.Value);
            }
        }

        var emailBuilder = new StringBuilder();
        var xmlWriter = new XmlTextWriter(new StringWriter(emailBuilder)) {Formatting = Formatting.Indented};
        objXslt.Transform(xpathNav, xslArg, xmlWriter);

        var emailDoc = new XmlDocument();

        emailDoc.LoadXml(emailBuilder.ToString());

1 个答案:

答案 0 :(得分:0)

我找到了解决方法。我将stringbuilder写入html文件并检查。最后,问题在于缺少字符串值中img元素的close标记,我用它作为参数传递给xslt文件。