我正在读取一个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)

08-03 19:36