gpt4 book ai didi

sql - sql query soap获取以s:Body命名的第一个元素

转载 作者:行者123 更新时间:2023-12-03 16:15:49 26 4
gpt4 key购买 nike

我有一个肥皂XML这样的:

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://www.w3.org/2005/08/addressing" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Body u:Id="_2">
<TestRecord xmlns="http://tempuri.org/">
</TestRecord>
</s:Body>
</s:Envelope>


我如何使用本地名称语法获取s:Body之后的第一个元素名称?

它应该给我TestRecord。

任何帮助表示赞赏。

最佳答案

//s:Body返回所有s:Body节点,并且//s:Body/*将所有子节点返回到所有s:Body节点。添加谓词[1],您将在文档中获得s:Body节点的第一个子节点。使用它作为函数local-name()的参数。



declare @X xml;

set @X = '
<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope"
xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<s:Body u:Id="_2">
<TestRecord xmlns="http://tempuri.org/"></TestRecord>
<TestRecord1 xmlns="http://tempuri.org/"></TestRecord1>
</s:Body>
</s:Envelope>';

with xmlnamespaces ('http://www.w3.org/2003/05/soap-envelope' as s)
select @x.value('local-name((//s:Body/*)[1])', 'varchar(100)');

关于sql - sql query soap获取以s:Body命名的第一个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38732218/

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