0

当我尝试传递一个包含 html 标记的值时出现错误“名称不能以 '<' 字符开头”,例如<table>, <div> ...使用 XsltArgumentList 将项目显示到 xslt 文件中以将这些值传递到 xslt 文件并使用 XslCompiledTransform 传递 xslt 的所有内容具有传递值的文件。最后使用LoadXml加载但会出现错误,我尝试使用“<替换<和>替换>”但仍然出现错误。谁能给我一些建议来解决它?

我的代码:

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());
4

1 回答 1

0

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

于 2013-03-07T14:09:58.510 回答