如何使用 TSQL 解析 XHTML 节点值?

use*_*632 2 sql-server xquery

我有以下 XHTML 并希望能够解析出My Node Value。有没有办法用 TSQL 轻松做到这一点?

<SPAN style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FLOAT: none; COLOR: rgb(0,0,0); TEXT-ALIGN: left; FONT: 10px verdana; DISPLAY: inline !important; LETTER-SPACING: normal; TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px">My Node Value</SPAN>
Run Code Online (Sandbox Code Playgroud)

Dan*_*man 7

只要值是格式正确的 XML,您就可以使用 XML 方法提取节点文本。

如果 XHTML 值是参数或变量:

DECLARE @XHTML xml = N'<SPAN style="WHITE-SPACE: normal; WORD-SPACING: 0px; TEXT-TRANSFORM: none; FLOAT: none; COLOR: rgb(0,0,0); TEXT-ALIGN: left; FONT: 10px verdana; DISPLAY: inline !important; LETTER-SPACING: normal; TEXT-INDENT: 0px; -webkit-text-stroke-width: 0px">My Node Value</SPAN>'
SELECT @XHTML.value('.','varchar(100)');
Run Code Online (Sandbox Code Playgroud)

如果 XHTML 值在表列中:

SELECT YourColumn.value('.','varchar(100)')
FROM dbo.YourTable;
Run Code Online (Sandbox Code Playgroud)

如果SPAN元素不是根节点,则可以调整节点路径。