У меня проблемы с преобразованием XSL с параметрами в URL. Я сейчас не могу изменить код C #, могу вносить изменения только в файл xsl.
C # код:
string xml = "<APPLDATA><APPID>1052391</APPID></APPLDATA>";
XmlDocument oXml = new XmlDocument();
oXml.LoadXml(xml);
XslTransform oXslTransform = new XslTransform();
oXslTransform.Load(@"C:\Projects\Win\ConsoleApps\XslTransformTest\S15033.xsl");
StringWriter oOutput = new StringWriter();
oXslTransform.Transform(oXml, null, oOutput)
XSL код:
<body>
<xsl:variable name="app">
<xsl:value-of select="normalize-space(APPLDATA/APPID)" />
</xsl:variable>
<div id="homeImage" >
<xsl:attribute name="style">
background-image:url("https://server/image.gif?a=10&Id='<xsl:value-of disable-output-escaping="yes" select="$app" />'")
</xsl:attribute>
</div>
</body>
</html>
URL-адрес преобразован:
https://server/image.gif?a=10&Id='1052391'
Ожидаемый URL:
https://server/image.gif?a=10&Id='1052391'
Как мне это исправить? Вывод (oOutput.ToString ()) используется в шаблоне электронной почты, поэтому он принимает преобразованный URL буквально. Когда вы нажимаете на этот запрос (с правильным именем сервера, конечно), выдается ошибка 403 (Доступ запрещен).