gpt4 book ai didi

sql-server-2008 - 使用 T-SQL 和 XQuery 解析 TFS 2010 Process Arguments XML

转载 作者:行者123 更新时间:2023-12-04 16:51:05 25 4
gpt4 key购买 nike

我试图在下面显示的代码示例中获取 XML 中 x:String 节点 (L1.0.0.0) 的值。当我们对构建进行排队时,示例中的 XML 由 TFS 2010 生成。 XML 有两个主要节点,Dictionary 和 x:String,我已经尝试过类似于其他堆栈溢出线程的查询,我已经将其包含在额外的研究中。任何人都对为什么我的 XQuery 不工作有任何建议?

DECLARE @XML XML;
SET @XML = '<Dictionary x:TypeArguments="x:String, x:Object"
xmlns="clr-namespace:System.Collections.Generic;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<x:String x:Key="GetVersion">L1.0.0.0</x:String>
</Dictionary>'


;WITH XMLNAMESPACES(
'clr-namespace:System.Collections.Generic;assembly=mscorlib' AS a,
'http://schemas.microsoft.com/winfx/2006/xaml' AS x)

SELECT @XML.value('(/Dictionary/x:String)[1]', varchar(100)) AS BuildLabel

额外研究
堆栈溢出
T-SQL, XQuery Invalid Column

How to work with multiple namespaces

最佳答案

在您的查询中,您需要添加前缀 Dictionaryaclr-namespace:System.Collections.Generic;assembly=mscorlib是默认命名空间和 Dictionary属于那个。

;WITH XMLNAMESPACES(
'clr-namespace:System.Collections.Generic;assembly=mscorlib' AS a,
'http://schemas.microsoft.com/winfx/2006/xaml' AS x)
SELECT @XML.value('(/a:Dictionary/x:String)[1]', 'varchar(100)') AS BuildLabel

或者,您可以在查询中将命名空间指定为默认名称。
;WITH XMLNAMESPACES('http://schemas.microsoft.com/winfx/2006/xaml' as x,
DEFAULT 'clr-namespace:System.Collections.Generic;assembly=mscorlib')
SELECT @XML.value('(/Dictionary/x:String)[1]', 'varchar(100)') AS BuildLabel

关于sql-server-2008 - 使用 T-SQL 和 XQuery 解析 TFS 2010 Process Arguments XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13614442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com