请考虑以下事项:
DECLARE @xml XML
SET @xml =
'<Capture>
<Data><DataType>Card Number</DataType><Value>1234567898765</Value></Data>
<Data><DataType>Expiry Date</DataType><Value>1010</Value></Data>
</Capture>'
SELECT @xml.query('//*[text()="Expiry Date"]/text()')
返回:
Expiry Date
除了检索 <DataType/>
文本节点,我如何检索 <Value/>
> 的文本节点值为“到期日”的 <DataType/
文本节点?
最佳答案
试试这个:
SELECT
@xml.value('(//Data[DataType="Expiry Date"]/Value/text())[1]', 'varchar(50)')
您选择任意 <Data>
具有 <DataType>Expiry Date</DataType>
的节点,对于该节点,您选择它的 <Value>
内部文本。
关于xml - SQL Server 2008 XML 查询方法 - 在另一个 text() 值存在的地方检索 text() 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3838612/