首页 / 知识
关于xpath:使用SQL Server 2005的XQuery选择具有特定属性值或缺少该属性值的所有节点
2023-04-16 23:56:00

Using SQL Server 2005's XQuery select all nodes with a specific attribute value, or with that attribute missing更新:给出一个更详尽的示例。
提供的前两个解决方案与我试图说不做的事情是正确的。我不知道位置,它需要能够查看整个文档树。因此,将/ Books /指定为上下文的解决方案将不起作用:
带有更好示例的原始问题: 使用SQL Server 2005的XQuery实现,我需要选择一个XML文档中的所有节点,每个节点仅选择一次并保持其原始结构,但前提是它们缺少特定的属性,或者该属性具有特定的值(通过参数传递)。该查询还必须处理整个XML文档(后代或自身轴),而不是在预定义的深度进行选择。 也就是说,只有每个节点及其祖先都缺少属性或具有单个特定值的属性时,它才会出现在结果文档中。 例如: 如果这是XML:
类别的参数1将导致以下结果:
类别的参数2将导致:
我知道XSLT非常适合这项工作,但这不是一个选择。我们必须在SQL Server 2005中完全完成此任务。任何不使用XQuery的实现也都可以,只要可以完全在T-SQL中完成即可。 从您的示例中,对于我来说尚不清楚您实际上要实现什么。您是否要返回一个新的XML,其中除满足条件的节点之外的所有节点都被删除?如果是,那么这看起来像是XSLT转换的工作,我认为它不是MSSQL 2005中内置的(可以作为UDF添加:http://www.topxml.com/rbnews/SQLXML/re- 23872_Performing-XSLT-在存储在SQL Server 2005.aspx中的XML数据上进行转换)。 如果只需要返回节点列表,则可以使用以下表达式:
但是我觉得这不是您所需要的。如果您可以提供一个更清晰的示例,则将有所帮助。 编辑:这个例子确实更加清楚。我能找到的最好的是:
这个想法是从XML中删除所有不需要的节点,因此您将保留原始结构和所需的节点。我用您的两个示例进行了测试,并产生了想要的结果。 但是Modify有一些限制-似乎您不能在select语句中使用它,它必须就地修改数据。如果需要通过选择返回此类数据,则可以使用临时表在其中复制原始数据,然后更新该表。像这样:
希望能有所帮助。 问题不是很清楚,但这是您要寻找的吗?
|
最新内容
相关内容
linux进入节点命令?
linux进入节点命令?,设备,地址,系统,信息,工作,工具,网络,资料,代码,文件,登录Linux服务器后如何更换节点?命令行是什么?Python常用的包管理器linux缺少arp命令?
linux缺少arp命令?,地址,网络,状态,设备,通信,缓存,数字,时间,系统,服务,Linux如何清理ARP缓存?1、Linux 清除arp缓存是把列表标记为(incomplelinux运行特定命令?
linux运行特定命令?,系统,网络,管理,地址,信息,工作,命令,时间,目录,任务,linux的运行命令是什么?1、linux系统的命令是什么linux系统命令是对linux创建节点命令?
linux创建节点命令?,设备,系统,信息,软件,试点,电脑,节点,香港,官方网站,官网,linux系统设备节点可以创建在1、设备节点通过 mknod 命令创建,也开机备节点linux命令?
开机备节点linux命令?,系统,工作,地址,命令,信息,目录,管理,工具,时间,基础,Linux命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出目录linux数据库选择命令?
linux数据库选择命令?,系统,地址,工作,软件,管理,信息,工具,基础,命令,服务,操作系统常用命令和linux常用命令怎么学首先打开linux操作系统在linux下节点检查命令?
linux下节点检查命令?,系统,信息,工作,名称,命令,地址,情况,文件,服务,第一,linux系统怎么进入不同节点命令1、年4月29日ifconfig命令可检查并linux中缺少bc命令?
linux中缺少bc命令?,地址,软件,工具,工作,网络,命令,代理,社会,第一,标准,BC是什么意思bc,即bench calculator的缩写,是一种任意精度计算器语言(a学编程为什么选择Python
学编程为什么选择Python,数据,人工智能,标准,代码,发展,工资,占比,项目,待遇,培训,人工智能的飞速发展推动使用Python编程语言的人越来越多,Pypython如何选择Python中的IDE?
python如何选择Python中的IDE?,工具,代码,平台,通用,培训,实时,最新,智能,工作,环境,在写Python代码时,最好的方式就是使用集成开发环境了,也就报名Python培训选择哪种方式比较好
报名Python培训选择哪种方式比较好?,培训,工作,基础,时间,情况,在线,最划算,环境,系统,方式,Python不仅是一种高级的编程语言,而且还是一种应用为什么要选择python?
为什么要选择python?,代码,工作,概念,设备,数据,宏观,年度,人工智能,教育,科技,作为新手,在面对广泛应用于企业级应用开发的Java、游戏客户端