【发布时间】:2013-04-19 15:24:32
【问题描述】:
我一直在寻找 TSQL 代码以按单词而非字符解析,因为我在需要删除的表中有 XML 字符串。不幸的是,它们没有遵循精确的公式,这意味着可以有 5 到 20 个 XML 字符串,即(在这种情况下只有 3 个):
<code>
<codeblue>Answer A</codeblue>
<codered>Blue Twenty</codered>
<codeyellow>WARNING: only push if active</codeyellow>
</code>
有时它们之间是文本或数字,我希望它们中的每一个都存储在列中:
CodeBlue | CodeRed | CodeYellow
<codeblue>Answer A</codeblue> | <codered>Blue Twenty</codered> | <codeyellow>WARNING: only push if active</codeyellow>
当然,有些列将是NULL,因为可能有 5 到 20 个 XML 字符串。因此,CHARINDEX 无法正确提取,因为我需要将 XML 存储在列中,因此 '<' 或 '>' 不是正确的标识符,因为长度可能会根据代码之间的文本或数字而变化。
我的问题是我可以通过单词或短语来解析文本吗,例如,通过搜索关键字codeblue,从8000个字符的列中解析出<codeblue>Answer B</codeblue>?
【问题讨论】:
标签: sql sql-server tsql xml-parsing sql-server-2008-r2