我有一點我想從中獲取第一個孩子的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