我在将数据收集到 SQL Server 表中的同时导入了几个 XML 文件。
我需要查询此 XML 数据列以将单个 XML 列转换为更结构化的表。
有人可以帮助这里的语法吗,XML 结构有一个模式,因此一旦以 SQL XML.query 格式理解,它应该很容易重复我想要的所有元素。
Select TOP 1
[XMLFILE].value('(/Objs/Obj[0]/TN)[0]','VARCHAR(MAX)') as TEST,
[XMLFILE].query('/Objs/Obj') as HEADERTEST,
[XMLFILE].query('/Ref[@id="0"]') as Property1
FROM
SQL_Table
以上只是为我尝试的每个模式返回一个空字符串。
我需要提取每个 obj [] 元素的名称和值。
XML 结构示例,即 objs 标头后跟 obj 节点 0 到“x”节点。
<?xml version="1.0"?>
<Objs xmlns="xxxx" Version="1.1.0.1">
<Obj RefId="0">
<TN RefId="0">
<T>xxxx/T>
<T>xxxxx</T>
<T>xxxx</T>
</TN>
<MS>
<S N="Name">xxxx</S>
<S N="Value">xxxx</S>
</MS>
</Obj>
<Obj RefId="1">
<TNRef RefId="0"/>
<MS>
<S N="Name">xxxxxx</S>
<S N="Value"/>
</MS>
</Obj>
<Obj RefId="2">
<TNRef RefId="0"/>
<MS>
<S N="Name">xxxxx</S>
<S N="Value"/>
</MS>
</Obj>
<Obj RefId="3">
<TNRef RefId="0"/>
<MS>
<S N="Name">xxxx</S>
<S N="Value"/>
</MS>
</Obj>
......
......
</Objs>