XSLテンプレートは、2時間前に初めて見ただけなので、よくわかりません。
私は次のテンプレートを持っています:
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:FormData="ext:FormVal"
xmlns:FormUrl="ext:UrlFinder"
>
<xsl:param name="note"/>
<xsl:param name="title"/>
<xsl:template match="/">
<html>
<head>
<title>EW Email Notification- File Note insertion Failed</title>
</head>
<body>
<p>
Failed to insert File note for form with refrence - <xsl:value-of select="FormData:get_RefFormId()" /> <br/>
<a>
<xsl:attribute name="href">
<xsl:value-of select="FormUrl:get_RootUrl()"></xsl:value-of>FormAction/ViewForm?formId=<xsl:value-of select="FormData:get_FormId()"></xsl:value-of>
</xsl:attribute>Click here </a> to open the form.
</p>
<p>
Please insert this file note manually.
</p>
<p>
<h3>
Title:
</h3>
<out> <xsl:value-of select="$title"></xsl:value-of>
</out>
</p>
<p>
<h3>
Note:
</h3>
<xsl:value-of select="$note"></xsl:value-of>
</p>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
そのほとんどは他の誰かによって書かれました。note
およびtitle
パラメータを追加しました。しかし、何らかの理由で、それらは印刷出力に表示されません。
ただし、FormData:get_FormId()
動作します。
私は次のような変数を渡します:
dictionary["note"] = note;
dictionary["title"] =title;
dictionary["ext:FormVal"] = formVal;
dictionary["ext:UrlFinder"] = urlFinder;
var objxslt = new XslCompiledTransform();
objxslt.Load(Helper.GetEmbeddedXmlResource(templateAssembly, templateName));
var xmldoc = new XmlDocument();
xmldoc.AppendChild(xmldoc.CreateElement("DocumentRoot"));
XPathNavigator xpathnav = xmldoc.CreateNavigator();
var xslarg = new XsltArgumentList();
foreach (DictionaryEntry entry in dictionary)
{
xslarg.AddExtensionObject(entry.Key.ToString(), entry.Value);
}
var emailbuilder = new StringBuilder();
var xmlwriter = new XmlTextWriter(new System.IO.StringWriter(emailbuilder));
objxslt.Transform(xpathnav, xslarg, xmlwriter, null);
var xemaildoc = new XmlDocument();
xemaildoc.LoadXml(emailbuilder.ToString());
XmlNode titlenode = xemaildoc.SelectSingleNode("//title");
string subjecttext = titlenode.InnerText;
XmlNode bodynode = xemaildoc.SelectSingleNode("//body");
string bodytext = bodynode.InnerXml;
変数bodytext
にはすべてのテンプレートが含まれていますが、パラメーターが出力されると予想される空白があります。
note
とtitle
パラメータが出力に表示されない理由を特定するのを手伝ってくれる人はいますか?