我想把所有这些都删掉,只留下标签之间的文字 . 理想情况下也用 <
替换 <
之类的东西等 .
有没有一种简单的方法可以做到这一点,或者有人已经有一些示例t-sql代码?
我没有能力添加扩展存储过程等,所以更喜欢纯t-sql方法(最好是一个向后兼容sql 2000) .
我只想用剥离的html检索数据,而不是更新它,所以理想情况下它会被写成用户定义的函数,以便于重用 .
所以例如转换这个:
<B>Some useful text</B>
<A onclick="return openInfo(this)"
href="http://there.com/3ce984e88d0531bac5349"
target=globalhelp>
<IMG title="Source Description" height=15 alt="Source Description"
src="/ri/new_info.gif" width=15 align=top border=0>
</A>> <b>more text</b></TD></TR>
对此:
Some useful text > more text
8 回答
有一个UDF将执行此处描述的操作:
User Defined Function to Strip HTML
编辑:请注意这是针对SQL Server 2005的,但是如果将关键字MAX更改为类似4000,它也可以在SQL Server 2000中使用 .
源自@Goner Doug的回答,更新了一些内容:
é
(我选择了我需要的那些:-)<ul> and <li>
如果您的HTML格式正确,我认为这是一个更好的解决方案:
这里's an updated version of this function that incorporates the RedFilter answer (Pinal' s原创)与LazyCoders添加和goodeye拼写错误更正和我自己的添加,以处理HTML内的内嵌
<STYLE>
标签 .这不是一个全新的解决方案,而是对维护者解决方案的修正:
试试这个 . 它是RedFilter发布的版本的修改版本...此SQL删除除BR,B和P之外的所有标记以及任何附带的属性:
如何使用XQuery与单行:
这循环遍历所有元素并仅返回text() .
要避免在没有空格的情况下连接元素之间的文本,请使用:
并回答“你如何使用这个列:
对于上面的代码,请确保
html_column
的数据类型为xml
,否则,您需要将html的转换版本保存为xml
. 当你加载HTML数据时,我会将它作为一个单独的练习,因为如果发现格式错误的xml,SQL会抛出错误,例如:不匹配的开始/结束标记,无效字符 .当你想要构建seachh短语,剥离HTML等时,它们非常适合 .
请注意,这会返回xml类型,因此CAST或COVERT会在适当的位置返回文本 . 此数据类型的xml版本是无用的,因为它不是格式良好的XML .
Patrick Honorez代码需要稍作改动 .
它返回包含
<
或>
的html的不完整结果这是因为该部分下面的代码
实际上会将<>替换为空 . 修复是在末尾应用以下两行: