我正在尝试在 C# ASP.NET 项目中使用 XML / XSLT 技术显示数据库中的图像。这是一个代码示例,展示了我如何使用 XSLT。
/// <summary>
/// Get HTML form xml
/// </summary>
/// <param name="xsltPath">the path to the xsl stylesheet</param>
/// <param name="xml">contain the xml</param>
/// <returns>the html</returns>
public string GetHtmlFrom_XML_XSL(string xsltPath, string xml)
{
xml = this.CleanString(xml);
MemoryStream stream = new MemoryStream(ASCIIEncoding.UTF8.GetBytes(xml));
XPathDocument document = new XPathDocument(stream);
StringWriter writer = new StringWriter();
XslCompiledTransform transform = new XslCompiledTransform();
transform.Load(xsltPath);
transform.Transform(document, null, writer);
return writer.ToString();
}
我现在必须在 SQL 服务器中显示来自 blob 的图像......我不知道该怎么做。我尝试在 xsl 表中使用 .ashx 处理程序,如下所示:
<img height="150" width="120">
<xsl:attribute name="src">~/ImageHandler.ashx?atoContactId=<xsl:value-of select="owner/picture" /></xsl:attribute>
<xsl:attribute name="alt">
<xsl:value-of select="owner/name" />
</xsl:attribute>
</img>
但是当然,XSLT 生成的 html 是在浏览器中流式传输的,没有处理 src 属性的请求 HTTP。这会产生一个空图像(红十字)。
有什么方法可以工作,或者我应该忘记 XML / XSLT 来显示 blob 图像?