我有一个使用 xslt 样式的 xml 文件来生成 html 电子邮件模板。我动态地从用户那里获取值,并用接收到的值替换 xml 元素文本。如何获取该 xml 文件并在 c# 中作为 html 电子邮件正文发送?
我的 Xml 看起来像这样
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="EmailTemplateStyleForHTML.xslt"?>
<EmailTemplate>
<subject>Information from xyz</subject>
<displayName>abcd</displayName>
<Message1>
Thanks you for registering to xyz.
</Message1>
<Copyright>Copyright xyz</Copyright>
</EmailTemplate>
我正在使用 LINQ 将值设置为 xml。注意:我知道如何从 xml 获取和设置值,但我想要将整个 xml 文件抓取到电子邮件正文中。
如果您认为对此有更好的方法,我很乐意听到。我将衷心感谢您的帮助。
回复后编辑:xsl转换部分:
TextReader tr1 = new StringReader(@"EMailTemplateHtml.xml");
var tr11 = new XmlTextReader(tr1);
var xPathDocument = new XPathDocument(tr11);
//read XSLT
TextReader tr2 = new StringReader(@"EmailTemplateStyleForHTML.xslt");
var tr22 = new XmlTextReader(tr2);
var xslt = new XslTransform();
xslt.Load(tr22);
var sb = new StringBuilder();
TextWriter tw = new StringWriter(sb);
xslt.Transform(xPathDocument, null, tw);
emailBody = sb.ToString();
我正在按照您所说的进行转换(@Roy Ashbrook)我在这里遗漏了什么吗?