我可以在sql server中一次只解析xml中的一个节点吗?
如果我有以下 xml:
<Main>
<Group>
<Insert />
</Group>
<Group>
<Insert />
</Group>
...
</Main>
我知道如果我使用 openxml(@xml, 'Main/Group/Insert',1)
,我将解析所有
。
有没有一种方法可以只读取一个组节点,解析其插入节点,然后读取下一个组节点并解析其插入节点?
If I have following xml:
<Main>
<Group>
<Insert />
</Group>
<Group>
<Insert />
</Group>
...
</Main>
I know that if I use openxml(@xml, 'Main/Group/Insert',1)
, I will parse all <Insert>
.
Is there a way I can read only one group node, parse its Insert node and then read the next group node and parse its Insert node?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
OpenXML 或较新的 XML 数据类型和 XPath 将 XML 视为一张表,一次性提取结果并将其视为多行。
你问的问题相当于,对于一个普通的SQL Server表,你可以选择一条记录,然后读取下一条记录吗?当然-例如使用游标或WHILE循环-,但为什么呢?
考虑一下您想用它做什么,您很快就会将其正确地视为数据集,并将解析结果作为记录,并将 SET 逻辑应用于从中检索的值。
The OpenXML or newer XML datatype and XPath treat the XML as a table, extracting and treating the results as multiple rows in one go.
What you are asking is equivalent to, for a normal SQL Server table, can you select one record, then read the next record? Of course - such as using cursors or WHILE loop -, but why?
Consider what you want to do with it, and you will soon come around to treating it properly as a dataset and getting the parsed results as records, and applying SET logic to the values you retrieve from it.