【发布时间】:2022-01-18 06:55:43
【问题描述】:
SQL Server 2012。给定以下 XML:
<header>
<subheader>
<Problems>
<RAW VALUE="1" Sublot="abc"/>
<RAW VALUE="2" Sublot="def"/>
<RAW VALUE="3" Sublot="ghi"/>
</Problems>
</subheader>
</header>
如何在 SQL Server 中解析 XML?我在处理“RAW VALUE”作为名称时遇到问题,例如
SELECT *
FROM OPENXML (@docHandle, '/header/subheader/Problems', 1)
WITH (
'RAW VALUE' VARCHAR (100)
);
由于“RAW VALUE”周围的引号而无效。括号也不起作用。有没有办法支持“RAW VALUE”中的空间?
【问题讨论】:
-
我已经在调用 sp_xml_removedocument。您对我的实际问题有任何信息吗?
-
根据Specifying ColPattern for mapping between columns and the XML attributes 文档...
[RAW VALUE] varchar(100) 'RAW[1]/@VALUE' -
看来你对XML命名有误解。在您的情况下,有一个 element
<Problems>{...}</Problems>和几个 self-closure elements<RAW />所有这些都包含相同的两个 attributes @ 987654335@ 和Sublot="xyz"。在这种情况下,它只是看起来像一个名称中的空白。
标签: sql-server xml