问题标签 [xml-dml]
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.
sql-server - 使用通配符的 T-SQL xquery .modify 方法
我在 SQL Server 2014 中工作。我创建了一个存储过程来处理它,最后,获取最终查询输出并将其格式化为 XML。由于过程中逻辑的性质,有时必须从最终的 XML 输出中删除一个节点。这是 XML 输出的示例(为简洁起见,我没有包括根节点;希望它们不会被要求回答我的问题):
在该过程中,我的代码查看了上面的 XML 结构并在它不应该存在时删除了一个节点,因为修改 xml 比调整查询输出更容易。这是该代码的示例:
最后一个命令是我无法弄清楚如何工作的命令。我需要做的就是寻找元素“DrugConceptType”以字符串“RxNorm”开头的实例,因为可能出现多个版本的字符串。
我已经详细搜索过 Google 和 StackOverFlowed,但也许是因为我在这方面缺乏经验,我没有正确地提出这个问题。
是否有一种相对简单的方法来重写上面的最终 .modify 语句以在“RxNorm”之后使用通配符?
sql-server - MSSQL 2012:使用变量删除 XML 属性
下午好,
我想通过使用 TSQL 变量来删除 XML 属性。这是一个最低限度的工作示例(TSQL 代码):
这给出了所需的输出:所有属性“desc”已被删除:
但是,我想定义一个 TSQL 变量
如何将它传递给 XQuery 修改操作?我可以在 XML DML 中使用sql:variable("@attr"),但是如何使用它来处理属性?
谢谢你的帮助!
sql-server - 使用来自另一个链接表的 XML 片段的 T-SQL XML 更新
我正在寻找一种方法来更新(.modify('insert into..') 具体而言)表中的 XML 列,其中包含来自由外键链接的另一个表的 xml 片段。
例如,我的表结构如下所示(简化):
- 每个表中的第 1 到第 5 字段可以忽略;他们的唯一目的是解释字段 Xx。
- 每个表中的字段 Xx 被定义为 XML,并预先填充了一个 XML 片段,该片段包含来自表中的字段的标记,表名。XML 片段在此列表之后描述。
- 表 B 和表 C 有一个外键 FK_A,将它们链接到表 A。表 A - B 和表 A - C 是一对多的(A 中的一条记录可以有 B 和 C 中的多条记录)。
现在,在我需要实现之前的 Xx 字段样本值:
这里的问题是,如何通过将所有 XB 和 XC 作为第一个(或最后一个)插入相应的 XA 来更新表 A?我更喜欢单个操作来更新整个表。
操作后,XA 应如下所示:
到目前为止我尝试了什么?
到目前为止,我最好的领导是分而治之的方法(一个两部分的解决方案,这是行不通的)。
编辑:
很抱歉没有提供任何文本值来复制粘贴。开始了。
这仅使用表 B 和表 C 中的第一个 XML 片段更新 XML。
更新:对于可能遇到此问题的任何人,请查看@Shnugo 的答案以及标记的答案。两种方法都很完美。我将@gofr1 的解决方案标记为答案,仅仅是因为他是第一个回复的。未来任务猎人的另一个考虑因素是您是否喜欢 CTE 或子选择(正如 Shnugo 指出的那样)。
sql-server - 使用 XML-DML 在现有实例中动态插入 XML 节点位置
如果可以在 SQL Server (2012) 中的现有 xml 实例中动态插入 xml 节点,我无法找到任何文档。我知道您可以插入或替换条件值,但如果插入位置可以根据某些条件动态完成,似乎没有任何文档。例如,假设我有这个 XML-DML 调用:
关键字后面列出的节点after
是有条件的修改是否是有效的语法?以下是我所指的示例:
动态选择位置的唯一方法是IF..ELSE
在 XML DML 语句之外有语句,还是我的示例 XML-DML 有效?
编辑示例 XML:
我知道结构并不理想。应该是<Contacts><Contact Type="PRIMARY" Id="1234">...</Contact>...</Contacts>
,但想看看动态插入位置是否可能在 DML 语句中。这个问题可以使用光标,因为它可以用于一次性更新。
xml - 如何使用 XQuery 更新 XML 变量中的属性值?
尝试更新包含在变量中的 XML 中的一个属性:
在 .上尝试了有和没有下标@AddressLine1[1]
。
这会引发错误:
Msg 2337, Level 16, State 1, Line 8
XQuery [modify()]: 'replace' 的目标最多只能是一个节点,找到'element(abc{ http://abcsystems.com/ }:PostalAddress,xdt :无类型) *'
PostalAddress
整个 XML中只有一个元素。错误告诉我什么?
sql - 如何排除多个节点,因此其中一个排除将使用 XML DML 重新排列其属性?
这是此已发布问题的参考,因为我正在寻找重新排列<pos>
节点内属性的值<est_mat>
,因此第一个节点<est_mat>
将拥有<pos>10</pos>
,然后第二个<est_mat>
节点将拥有<pos>20</pos>
,依此类推。我在提到的已发布参考资料中的一位用户的帮助下得到了这个查询。因此,假设以下 xml 结构:
这个查询:
<pos>
如上所述,如何通过对该属性进行排序来再次生成结构?
目前查询抛出相同的 xml 结构而不改变<pos>
sql - 使用 SQL 将多个分组的 xml 文档插入到单个 xml 文档中
我有两张桌子
tmpEntityAddress
tmpEntityAddresses
我想将各种地址文档分组并插入到第二个表中的单个地址文档中。粗略的基本架构如下所示:
我无法完全理解如何使用 XML DML 语言功能在 SQL 中执行此操作,例如 XML 插入等https://docs.microsoft.com/en-us/sql/t-sql/xml/ xml-数据-修改-语言-xml-dml
我在想我可以做到以下几点:
但它似乎只从#tmpEntityAddress 添加一行,这不是我想要的,因为我需要整个集合。
这可以用 SQL 实现吗?如果是这样,如何实现?
sql-server - SQL 替换一个空 xml 值
我是 sql 的初学者,我不知道如何找到解决问题的方法。
我有一个包含项目的表,一列包含 xml 值。我想检查一个字段是否存在并更新它。
我找到了一种修改现有 xml 值的方法,但是当它为 NULL 时它不起作用
有我的代码:
sql-server - 使用 XML.Modify 如何在现有节点下插入节点
使用 SQL 和函数 xml.modify 是否可以在特定节点下添加一个新节点?
这是我的 XML
我目前有
我需要在测试 10 下获得测试 11,而不是在同一级别
谢谢你