【发布时间】:2010-07-21 00:17:01
【问题描述】:
我在使用 URL 中的参数转换 XSL 时遇到问题。我现在无法再更改 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>
网址转换:
https://server/image.gif?a=10&Id='1052391'
预期网址:
https://server/image.gif?a=10&Id='1052391'
我该如何解决这个问题?输出 (oOutput.ToString()) 正在电子邮件模板中使用,因此它对 URL 进行了字面转换。当你点击这个请求(当然是正确的服务器名称)时,会抛出 403(禁止访问)错误。
【问题讨论】:
标签: xslt