Jef*_*ang 8 sql asp.net xslt sql-server-2005
我的ASP.NET Web应用程序中有很多XSL文件.很多.我使用这种通用转换方法生成一堆AJAX HTML响应:
public void Transform(XmlDocument xml, string xslPath)
{
...
XslTransform myXslTrans = new XslTransform();
myXslTrans.Load(xslPath);
myXslTrans.Transform(xml,null, HttpContext.Current.Response.Output);
}
Run Code Online (Sandbox Code Playgroud)
我想使用xml类型的列将XSL定义移动到SQL Server中.我将整个XSL文件存储在SQL中的单行中,并且每个XSL都是自包含的(无导入).我会将SQL中的XSL定义读出到我的XslTransform对象中.
像这样的东西:
public void Transform(XmlDocument xml, string xslKey)
{
...
SqlCommand cmd = new SqlCommand("GetXslDefinition");
cmd.AddParameter("@xslKey", SqlDbType.VarChar).Value = xslKey;
// where the result set has a single column of XSL: "<xslt:stylesheet>..."
...
SqlDataReader dr = cmd.ExecuteReader();
if(dr.Read()) {
SqlXml xsl = dr.GetSqlXml(0);
XslTransform myXslTrans = new XslTransform();
myXslTrans.Load(xsl.CreateReader());
myXslTrans.Transform(xml,null, HttpContext.Current.Response.Output);
}
}
Run Code Online (Sandbox Code Playgroud)
这似乎是一种直截了当的方式:
有人曾尝试过这个吗?有什么警告吗?
编辑
响应者列出的注意事项:
我看到的两个大问题是:
在磁盘访问方面,嗯...数据库仍然必须访问磁盘来提取数据,如果您谈论的是缓存,那么数据库不是启用缓存的要求。
必须就更新/搜索选项达成一致 - 您可以使用 Powershell 执行操作,但这需要在服务器上运行,这并不总是一个好主意。
从技术上讲,我看不出有什么理由不这样做(除了希望包括上述内容),但实际上,无论哪种方式,它似乎都与良好的论点相当平衡。
| 归档时间: |
|
| 查看次数: |
1877 次 |
| 最近记录: |