2012-02-07 65 views
0

我有一个包含HTML标记的表。 我只是想创建一个HTML FORM使用这个表格是HTML FOrmat 例如。使用SQL从HTML标记生成有效的HTML

ID Tags 
-- ---- 
1 Html 
2 Head 
3 Title 
4 Meta 
5 Body 
6 Font 

结果应该是

ID HTML         
-- ------------------------------------------------------------------------------------ 
1 <Html> <Head> <Title></Title> <Meta></Meta> </Head><Body> <Font></Font></Body</Html> 
+0

你尝试过什么?另外,我真的很难想象一个没有更好的方式来实现你想要的东西的情况。为什么你需要以这种方式获得表格? – Hecksa 2012-02-07 12:12:37

+1

涉及的表单在哪里?这些标签中只有FONT在表单内有效。特殊情况下的逻辑将是必要的,因为其中一些标签嵌套在其他标签中,并且在表格数据中没有任何标识,这6个元素是否总是以相同的ID存在?您需要扩展您的问题以获得更好的答案 – 2012-02-07 12:15:51

+1

我使用的是从数据库生成html的系统。坦率地说,整个系统是疯狂的。诚实 - 不要这样做。例如,你将如何设计输出风格。属性?内文。我头疼。如果你必须这样做,那么将内容生成为XML(如下面的答案),然后用XSTL进行转换。我甚至不相信这是一个好主意。 – 2012-02-07 12:29:44

回答

1
declare @t table(id int, tags varchar(50)) 
insert into @t values 
     (1, 'Html'), 
     (2, 'Head'), 
     (3, 'Title'), 
     (4, 'Meta'), 
     (5, 'Body'), 
     (6, 'Font') 

;with Tags1 as 
(
    select xml1 = (select '<' + tags + '>' from @t for xml path ('')) 
) 
,Tags2 as 
(
    select xml2 = (select '</' + tags + '>' from @t order by id desc for xml path ('')) 
) 
select replace(replace(Tags1.xml1 + Tags2.xml2,'&lt;','<'),'&gt;','>') 
from Tags1, Tags2