SQL Server 2014中可以读取标记之间内容的函数或过程

时间:2016-09-10 06:07:04

标签: sql sql-server sql-server-2014

我需要SQL Server 2014中的一个函数或过程,它可以读取(<?>)此示例的符号标记之间的内容。

感谢。

<ul>how are you?</ul>

输出1:应为ul/ul

这可能吗?

2 个答案:

答案 0 :(得分:0)

如果您的要求太简单而无法在标签之间读取内容,那么您可以使用以下逻辑:

declare @str varchar(200) = '<ul>how are you?</ul>'
select SUBSTRING(@str, CHARINDEX('<', @str) + 1, CHARINDEX('>', @str) - CHARINDEX('<', @str) -1)

但是,如果您在同一个字符串中有多个标记,则无法使用此功能。 如果您需要处理更复杂的场景,可以使用xquery。我认为此链接可能会帮助您这样做:xquery to return the element name

答案 1 :(得分:0)

您可以使用[sidgupta234@sidgupta234-Lenovo-G580 Downloads]$ python -V Python 3.5.2 :: Continuum Analytics, Inc. XPath function

local-name

输出:

DECLARE @x xml = '<ul>how are you?</ul>'

SELECT  s.d.value('local-name(.)','nvarchar(100)') as TagName,
        s.d.value('.','nvarchar(100)') as SomeValue
FROM @x.nodes('/*') as s(d)