我想要粉碎XML。我正在尝试CROSS APPLY并且只采用xsi的QueryNode:类型ReferenceNode但我不知道如何将.nodes限制为只有xsi:type。 这是我的XML
<QueryNode xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="TableNode">
<ChildNodes>
<QueryNode xsi:type="ReferenceNode">
</QueryNode>
</ChildNodes>
</QueryNode>
到目前为止,这是我的查询:
SELECT acode, x.l.value('.', 'VARCHAR(255)')
FROM @originals as o
CROSS APPLY o.definition_xml.nodes('QueryNode/ChildNodes/QueryNode/@xsi:type') as x(l)
答案 0 :(得分:1)
您可以使用XPath谓词(onResume()
)来过滤具有特定条件的目标元素,例如:
[.....]
所以整个查询看起来像这样:
QueryNode/ChildNodes/QueryNode/@xsi:type[.="ReferenceNode"]