我可以在sql server中一次只解析xml中的一个节点吗?

发布于 2024-10-28 09:41:57 字数 348 浏览 5 评论 0原文

如果我有以下 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

计㈡愣 2024-11-04 09:41:57

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文