问题标签 [for-xml]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
4475 浏览

sql - SQL Server 2005 For XML Explicit - 需要帮助格式化

我有一个结构如下的表:


位置 ID 帐号
长指南-这里 12345
长指南-这里 54321

要传递到另一个存储过程,我需要 XML 看起来像这样:

到目前为止,我能做的最好的事情就是这样:

我正在使用这个 SQL 语句:

到目前为止,我已经查看了 MSDN 页面上的文档,但还没有得到想要的结果。


@公斤,

你的实际上给了我这个输出:

我现在要坚持使用FOR XML EXPLICITChris Leon 的建议。

0 投票
1 回答
2483 浏览

sql-server - TSQL:如何在 XML 中进行自联接以获取嵌套文档?

我有一个这样的 SQL Server 2005 表:

数据看起来像 CategoryIdParentCategoryIdCategoryDescription 123nullfoo345123bar

I'd like to query it into an xml document like this:

FOR XML AUTO, ELEMENTS 可以做到这一点吗?还是我需要使用 FOR XML EXPLICIT?

0 投票
4 回答
908 浏览

asp.net - 架构评论:将 SQL Server FOR XML 转换为 XSLT 以实现富 HTML 接口

我能得到一些关于以下架构的建设性反馈吗?

简化架构总结:

从 SQL Server 返回 XML(使用 FOR XML)并将其直接传递到 XSL 转换中以生成丰富的 HTML 网站。

与传统的 3 层 ASP.NET 体系结构相比,这种系统的优缺点是什么?

0 投票
3 回答
1842 浏览

sql-server - 关于 xpath 元素的 xml 路径问题的 MS TSQL

我有以下 TSQL 语句:

输出:

但我想要这个输出(元素名称:

有人知道如何使用 T-SQL 实现这一目标吗?

谢谢
丹尼尔

0 投票
1 回答
991 浏览

c# - 带有“FOR XML”数据的 .NET XmlReader

最近,在公司中,我们从一些旧项目中获得了一些 MSSQL 数据库,我们必须将其集成到当前解决方案中。

数据库有大约 100-150 个使用 FOR XML AUTO 子句的存储过程,因此查询返回完整的对象图作为 XML 而不是行。

最快的解决方案(对于我们公司而言)是基于从数据库返回的 xml 数据创建可序列化的类(使用 xsd 工具)。

这是我们用来实例化这些对象的代码:

DB 代表企业库中的数据库类。

当 sp 返回大量数据时(例如,其中包含大量子对象、孙子对象、grandgrndchldrn ......对象的一些大型对象集合),此方法的执行会持续很长时间。

应用程序中的数据肯定会继续增长,我必须考虑对此进行优化。

所以,我想知道这是否是不好的做法(使用 FORXML、XmlReader 和反序列化),或者我们应该重写存储过程并使用 SqlDataReaders 或 Linq2Sql,或者这个片段中有一些 perf.issue(不正确使用泛型或其他东西) ?


编辑 我知道一次加载大量数据是不好的做法,而且我知道加载过程应该分成更小的块,但我只是想知道这段特定的代码是否有问题。

0 投票
2 回答
952 浏览

sql-server - SQL Server FOR XML 添加标签

因此,我从 SQL Server 2000 DB 中提取数据,然后使用 FOR XML AUTO 将其转换为 XML。

我得到的 XML 看起来像这样。

首先,在 2000 年没有 Root('whatever'),那么有没有办法在 T-SQL 中添加根节点?另外,有没有办法将所有产品包装在产品标签中?我不太明白为什么返回的 XML 格式如此糟糕。如果我在 SQL 2005 中,我可以稍微修复它。不幸的是,我现在被 2000 困住了。

谢谢

0 投票
1 回答
19527 浏览

sql-server - SQL Server 中的 FOR XML PATH

注意:我已经解决了这个问题的大部分,但遇到了障碍。请读到底部。你会看到我在哪里添加了一个(注意)部分。TIA。


我有一个相当广泛的连接查询,我想转储到 XML。我几乎可以正常工作,但是我在这里的某个地方缺少一个概念。我的查询(缩写)如下所示:

数据的工作方式我有:

  • 1 个广告系列行
  • 1 个音频行 - 与活动行相关
  • 1 个视频行 - 与广告系列行相关
  • 1-n 个字符行 - 与活动行相关
  • 1-n 个元素行 - 与活动行相关
  • 0 或 1 个图像行 - 与每个元素行相关
  • 0 或 1 个文本行 - 与每个元素行相关

XML 的输出如下:

不幸的是,我对此有一些问题。

  1. 根元素仍处于行级别。根元素应该是
  2. 如果我有 3 个字符和 3 个元素,我最终会得到9 个根元素。从一个根元素到下一个根元素的唯一变化是显示的是哪个字符和哪个元素。(并将其与具有 0 或 1 个文本和/或图像的每个元素复合)

XML 应该看起来像:

我需要改变什么?我是否需要查看创建 XML 的不同方法,也许是某种嵌套子句?


注意:在玩了很多谷歌搜索/搜索之后,我改变了我的查询,所以它使用嵌套查询。这是它现在的样子:

除了子查询的标记 之外, XML 现在几乎完美无缺。

Character 和 Element 子查询正在生成 < /> 而不是</ >,怎么说呢,URL安全标记?我不想要这个。

Image 和 Text 子子查询正在生成 &< /&> 而不是 < / >。请注意,它已被设为 URL 安全两次!我也不想要这个。

关于如何获得实际标记而不是这种废话的任何想法。:)

TIA

0 投票
1 回答
298 浏览

sql-server - Sql Server - 捕获 XML 查询并将其保存到表中?

我想运行一个生成一行 XML 的(广泛的)查询。此 XML 代表大约 12 个关系数据表。当我从顶级表中“删除”一行时,我想“捕获”当时数据的状态(以 XML 格式),将其保存到存档表中,然后删除所有子表数据,最后标记顶级表/行为“isDeleted=1”。我们还有其他数据挂在父表上,这些数据不能被删除,也不能失去与顶层表的关系。

我已经解决了大部分 XML - 请参阅我的帖子,关于那罐蠕虫。

现在,我怎样才能将其捕获到存档表中?

这只是行不通。:)

有什么建议么?

TIA

0 投票
2 回答
4108 浏览

sql-server-2005 - SQL Server 2005“FOR XML PATH”分组

我正在尝试使用“FOR XML”构造从 SQL Server 2005 数据库生成 XML 文档。

数据库中有两个简单的表,具有一对多的关系:

1) 杂志

2) 文章

假设我必须找到所有文章大小大于 1000 的杂志并生成以下 xml:

我正在尝试使用“PATH”模式生成这样的 xml:

它将产生以下xml:

因此,Id="54" 的杂志有两个元素(每篇文章一个),这就是问题所在。

我可以使用这样的子查询重写查询:

这会产生以下xml:

但是通过使用子查询,我无法按文章列过滤杂志(没有复杂的附加查询)。

“FOR XML AUTO”模式不适合,因为它很简单,不支持一些“PATH”特性(比如属性使用@、ROOT等)

那么,“PATH”模式下是否有可能像“AUTO”模式一样对内表数据进行分组?

谢谢!

0 投票
2 回答
1112 浏览

c# - 使用 C#.NET 将 FOR XML 查询的结果写入文件

我正在尝试将 FOR XML PATH 查询的结果写入文件。我可以生成文件,但它不包含查询结果。任何人都知道我要去哪里错了吗?

这是使用上述代码生成的 xml 文件的内容。