我正在读取一个XML,但是当我想在没有其内部(子)标记的情况下读取它时,我遇到了一个问题。
例如:
DECLARE @XMLToParse XML
SET @XMLToParse = '<Animals>
<LandAnimals>
<Animal>Baboon</Animal>
<Animal>Yak
<d>asd</d>
</Animal>
<Animal>Zebra</Animal>
</LandAnimals>
</Animals>'
SELECT xmlData.A.value('.', 'VARCHAR(100)') AS Animal
FROM @XMLToParse.nodes('Animals/LandAnimals/Animal') xmlData(A)
这个查询提取了第二条记录“yak asd”,但我只需要“yak”。
我怎样才能修好它?
谢谢您。!
最佳答案
更改您的呼叫以获取.value()
:
SELECT xmlData.A.value('(./text())[1]', 'VARCHAR(100)') AS Animal
FROM @XMLToParse.nodes('Animals/LandAnimals/Animal') xmlData(A)