我收到错误“名称不能以'&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());
答案 0 :(得分:0)
我找到了解决方法。我将stringbuilder写入html文件并检查。最后,问题在于缺少字符串值中img元素的close标记,我用它作为参数传递给xslt文件。