Convert to html using xquery?(使用 xquery 转换为 html?)
问题描述
我有以下数据库电子邮件的 T-Sql.
I have the following T-Sql for database email.
-- create proc TableToHtml @table varchar(max) as
declare @table varchar(max) = '(select 1 a, ''one'' b union all select 2, ''two'') t '
declare @sql varchar(max) = '
declare @xml xml = (
select * from ' + @table + '
for xml path(''tr''), root(''table'')
);
select @xml'
declare @tmp table (x xml)
insert into @tmp exec(@sql)
declare @x xml = (select x from @tmp)
select @x
然后它返回
<table>
<tr>
<a>1</a>
<b>one</b>
</tr>
<tr>
<a>2</a>
<b>two</b>
</tr>
</table>
是否可以编写 xquery 让它返回以下 html?
Is it possible to write the xquery to let it returns the following html?
<table>
<tr>
<th>a</th>
<th>b</th>
</tr>
<tr>
<td>1</td>
<td>one</td>
</tr>
<tr>
<td>2</td>
<td>two</td>
</tr>
</table>
推荐答案
我想出了一个更少黑客攻击的方案.唯一的问题是如果值为空,它将创建
而不是
.将电子邮件发送到某些旧 Outlook 客户端时会导致一些布局问题.
I figured out a less hacking one. The only problem is it will create <td />
instead of <td></td>
if the value is null. It will cause some layout issue when the email is sent to some old Outlook clients.
declare @table varchar(max) = '(select 1 a, ''one'' b union all select 2, ''two'') t '
declare @sql varchar(max) = '
declare @xml xml = (
select * from ' + @table + '
for xml path(''tr''), root(''table'')
);
select @xml'
declare @tmp table (x xml)
insert into @tmp exec(@sql)
declare @x xml = (select x from @tmp)
select @x.query('<body>
<table>
<tr>
{for $c in /table/tr[1]/* return element th { local-name($c) } }
</tr>
{
for $r in /table/*
return element tr { for $c in $r/* return element td { data($c) } }
}
</table>
</body>')
这篇关于使用 xquery 转换为 html?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 xquery 转换为 html?
基础教程推荐
- SQL Server 2016更改对象所有者 2022-01-01
- ERROR 2006 (HY000): MySQL 服务器已经消失 2021-01-01
- 使用pyodbc“不安全"的Python多处理和数据库访问? 2022-01-01
- 无法在 ubuntu 中启动 mysql 服务器 2021-01-01
- 在 VB.NET 中更新 SQL Server DateTime 列 2021-01-01
- 将数据从 MS SQL 迁移到 PostgreSQL? 2022-01-01
- 如何在 SQL Server 的嵌套过程中处理事务? 2021-01-01
- SQL Server:只有 GROUP BY 中的最后一个条目 2021-01-01
- Sql Server 字符串到日期的转换 2021-01-01
- SQL Server 中单行 MERGE/upsert 的语法 2021-01-01