C# XSLT图像转换
考虑以下XSLT,我知道这是不正确的 我想将数据库中的一些数据提取到一个XML文件中,并使用此XSLT获取一个HTML表。我正在做以下工作C# XSLT图像转换,c#,xslt,C#,Xslt,考虑以下XSLT,我知道这是不正确的 我想将数据库中的一些数据提取到一个XML文件中,并使用此XSLT获取一个HTML表。我正在做以下工作 在IDataReader中提取-包含以下内容的ojbect[3]: “阿尔夫基” “奥贝街57号” 字节[14205](id和图片) 我将IDataReader加载到MemoryStream 我将XSL应用于内存流,得到一个字符串作为结果 问题是我无法处理图片的情况-在我的数据库中,我有实际的图片,而不是它的路径 需要做哪些修改 <xsl:styl
IDataReader
中提取-包含以下内容的ojbect[3]:
“阿尔夫基”
“奥贝街57号”
- 字节[14205](id和图片)
IDataReader
加载到MemoryStream
内存流
,得到一个字符串作为结果<xsl:stylesheet
xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
version='1.0'
>
<xsl:template match='CustomersOrdersDataSet'>
<STYLE>
BODY {
font-family: verdana;
font-size: 9pt;
}
TD {
font-size: 8pt
}
</STYLE>
<TABLE WIDTH='100%' BORDER='0'>
<xsl:apply-templates select='CustomersOrders' />
</TABLE>
</xsl:template>
<xsl:template match='CustomersOrders'>
<TABLE WIDTH='100%' HEIGHT='100' BORDER='0'>
<TR>
<TD valign='top'>
<B>Customer ID:</B>
</TD>
<TD valign='top'>
<xsl:value-of select='CustID' />
</TD>
</TR>
<TR>
<TD valign='top'>
<B>Customer Address:</B>
</TD>
<TD valign='top'>
<xsl:value-of select='CustomerAddress' />
</TD>
</TR>
<TR>
<TD valign='top'>
<B>Picture:</B>
</TD>
<TD valign='top'>
<xsl:value-of select='Picture' />
</TD>
</TR>
</TABLE>
</xsl:template>
</xsl:stylesheet>
身体{
字体系列:verdana;
字号:9pt;
}
运输署{
字号:8pt
}
客户编号:
客户地址:
图片:
如果数据库中只有图片,则需要编写处理程序从数据库中提取图片并将其显示在图像标记中。最好的方法是编写一个自定义的.ashx处理程序来执行此操作,然后通过XSLT生成的图像标记调用它
<img src="ImgHandler.ashx?imgid=1" width="50" height="50" alt="alttext" />
有一篇关于的文章。如果
以XML编码的Base64形式输出,您可以这样做:
<!-- ... -->
<TD valign='top'>
<!-- needs to be the correct MIME type, obviously -->
<img alt="Embedded Image" src="
{concat('data:image/png;base64,', Picture)}
" />
</TD>
<!-- ... -->
Firefox理解这一点,IE不理解(IIRC)——因此这不是最可移植的方法
除此之外,它会使结果文档膨胀,用户代理无法单独缓存图像 我认为这是无法回答的,除非你告诉我你的XML元素是什么样子的,什么东西现在不起作用