我正在阅读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'。 我该如何解决?
谢谢。!
答案 0 :(得分:2)
更改.value()
上的来电以获取text()
:
SELECT xmlData.A.value('(./text())[1]', 'VARCHAR(100)') AS Animal
FROM @XMLToParse.nodes('Animals/LandAnimals/Animal') xmlData(A)
答案 1 :(得分:2)
指定text()
SELECT xmlData.A.value('./text()[1]', 'VARCHAR(100)') AS Animal
FROM @XMLToParse.nodes('Animals/LandAnimals/Animal') xmlData(A)