我有一点我想从中获取第一个孩子的XML。到目前为止,我已经能够这样做:使用SQLXML的xml文档中的第一个孩子
DECLARE @x XML = '<a><b foo="bar">some data</b><b foo="baz"/></a>'
SELECT @x.query('(/a/child::*)[1]')
我只是想知道是否有更有效的方法。我的问题是,直到运行时,“a”标签后面的元素对我来说是未知的,所以只是说
@x.query('(/a/b)[1]')
不会为我工作。 “a”之后的标签也可以是“c”,我希望有一个查询可以解释这一点。
这似乎遭受与我的查询相同的问题。也就是说,它是指定一个“抓住一切”的方法,然后采取第一个要素。除非这是某种程度上的优化(如果是这种情况,我想引用它)。 – 2011-05-11 20:56:05
恐怕除非你知道第一个孩子的节点类型,否则你必须使用*选择器。 – 2011-05-11 22:51:47