创建HTML表并使用SQL FOR XML指定fontsize

时间:2011-12-15 16:17:23

标签: html sql xml font-size

我需要编写SQL语句,它将返回一个html表并为其内容指定字体大小。

我找到了一些信息here。这个技巧的解释描述了如何使用元素获取XML但没有属性:

<tr>
    <th>Problem</th>
    <th>Onset</th>
    <th>Status</th>
</tr>
<tr>
    <td>aaa</td>
    <td>bbb</td>
    <td>ccc</td>
</tr>

但我需要编写一个返回类似这样的SQL语句:

<tr>
    <th><font size="1">Problem</font></th>
    <th><font size="1">Onset</font></th>
    <th><font size="1">Status</font></th>
</tr>
<tr>
    <td><font size="1">aaa</font></td>
    <td><font size="1">bbb</font></td>
    <td><font size="1">ccc</font></td>
</tr>

2 个答案:

答案 0 :(得分:1)

一些想法。

1)将SQL数据转换为应用程序中的XML,而不是查询中的XML。 .NET / PHP / Java都有将SQL数据作为XML的方法。

2)使用XSL将XML从数据库转换为HTML

3)考虑使用CSS而不是<font>标签。

table td {
    FONT-SIZE: 12px;
}

答案 1 :(得分:0)

declare @T table
(
  ProblemType varchar(10),
  Onset date,
  DiagnosisStatus varchar(10)
)

insert into @T values
(  'Ulcer',     '01/01/2008',  'Active'),
(  'Edema',     '02/02/2005',  'Active')

select 
  (select 1 as 'th/@size', 'Problem' as th for xml path(''), type),
  (select 1 as 'th/@size', 'Onset'   as th for xml path(''), type),
  (select 1 as 'th/@size', 'Status'  as th for xml path(''), type)
union all         
select 
  (select 1 as 'td/@size', p.ProblemType     as 'td' for xml path(''), type),
  (select 1 as 'td/@size', p.Onset           as 'td' for xml path(''), type),
  (select 1 as 'td/@size', p.DiagnosisStatus as 'td' for xml path(''), type)
from @T p
for xml path('tr')

结果:

<tr>
  <th size="1">Problem</th>
  <th size="1">Onset</th>
  <th size="1">Status</th>
</tr>
<tr>
  <td size="1">Ulcer</td>
  <td size="1">2008-01-01</td>
  <td size="1">Active</td>
</tr>
<tr>
  <td size="1">Edema</td>
  <td size="1">2005-02-02</td>
  <td size="1">Active</td>
</tr>