【发布时间】:2016-06-13 17:35:14
【问题描述】:
如何从 XML 中替换 < 符号?我需要理解这个概念,就像我们在 xml 中将 &amp; 替换为 &amp;。
例如:
Declare @xml xml,@xmlType nvarchar(max)
select @xmlType = '<root><stuff><test>something < this will error</test></stuff</root>'
select @xml = REPLACE(@xmlType, '<', '<')
select @xml
如果我这样做,那么答案将是
'<root><stuff><test>something < this will error</test></stuff</root>'....
但我需要像这样的答案
<root><stuff><test>something < this will error</test></stuff></root>
谁能帮我通过SQL查询/存储过程/T-SQL解决这个问题??
如何解决这个问题:
第 35 行,ERR_MSG:XML 解析:第 1 行,字符 1088,非法限定名字符
提前致谢
【问题讨论】:
-
这是实际答案:<root> <东西> <测试>某事<这将出错</test> </东西> </root>这是预期的答案:
something <这会出错 -
您尝试从非 XML 的内容创建 XML,
<使其无效。解决这个问题的地方更高,无论该字符串来自何处。 -
我有一个 XML 文件,其中包含特殊字符,例如 &、'、,"。我正在使用 T-SQL 从 XML 中提取元素,但一些标记值包含特殊字符。例如:
abc c&de a 在从 XML db 读取自身时抛出异常。例如:第 35 行,ERR_MSG : XML 解析:第 1 行,字符 1088,非法限定名称字符。如果我验证正确解析,那么提取后的值应该是 abc,c&de,a -
具有包含
<和&amp;等值的元素的 XML 文件不是 XML,它只是看起来像 XML 的文本 - 因为这两个字符都使 XML 无效。尝试用任何东西解析它都会遇到很大的困难。 -
亚历克斯我同意,它是 ntext 看起来像 xml,但我的主要目的是使用 t-sql 从 xml 中提取数据。但是如果这个文件包含无效字符怎么办?我们可以通过 t-sql 从 xml 中提取数据,即使它包含无效字符??
标签: sql-server xml xml-parsing for-xml-path