我有一个具有以下给定格式的 xml 变量,我确实需要动态读取元素名称及其各自的字段值并将其加载到某些 T-SQL 结构中:
declare @InputXml xml
Set @InputXml = '<Root RootName="rooNameValueHere">
<Element Name="elementName">
<SubElement Field="subelementFielName"/>
</Element>
<Element Name="otherElementName">
<SubElement Field="subelementFielName1"/>
<SubElement Field="subelementFielName2"/>
<SubElement Field="subelementFielName3"/>
</Element>
</Root>'
提示: 1 - 根可以包含 N 个元素 2 - 每个元素可以包含 N 个子元素 3 - 我需要创建一个例程,能够检索所有信息并且还能够通过提供一个元素名称来过滤掉(ei:对于给定的元素,返回其所有子元素)。
现在,我编写了这个 T-SQL 来获取给定一个元素名称的子元素,但我得到一个空值:
select
t.c.value('@Field', 'nvarchar(10)') AS SomeAlias
from
@InputXml.nodes('N/Root/Element[@Name = ''elementName'']//SubElement') t(c);
分辨率:
这篇文章帮助我解决了我的问题。感谢所有回复的人。