我想知道如何获取其中所有具有属性 TIPO 且等于“MC”的元素
XML 是:
<ROOT>
<PARAMETERS>
<USU_LOGIN>yleon</USU_LOGIN>
<USU_NOMBREPRIMERO>Yerusha</USU_NOMBREPRIMERO>
<USU_APELLIDOPRIMERO>Leon</USU_APELLIDOPRIMERO>
<USU_EMAIL>yleon@pt.com.ve</USU_EMAIL>
<USU_FECHACREACION>201305270</USU_FECHACREACION>
<USU_CONDITIONS1 TIPO="MC">AND USU_ID=4</USU_CONDITIONS1>
<USU_CONDITIONS2 TIPO="MC">AND USU_ID=5</USU_CONDITIONS2>
<USU_CONDITIONS3 TIPO="ZZ">AND USU_ID=9</USU_CONDITIONS3>
</PARAMETERS>
</ROOT>
预期的结果是:
AND USU_ID=4
AND USU_ID=5
最佳答案
检查这个:
DECLARE @xml XML
SET @xml = '<ROOT>
<PARAMETERS>
<USU_LOGIN>yleon</USU_LOGIN>
<USU_NOMBREPRIMERO>Yerusha</USU_NOMBREPRIMERO>
<USU_APELLIDOPRIMERO>Leon</USU_APELLIDOPRIMERO>
<USU_EMAIL>yleon@pt.com.ve</USU_EMAIL>
<USU_FECHACREACION>201305270</USU_FECHACREACION>
<USU_CONDITIONS1 TIPO="MC">AND USU_ID=4</USU_CONDITIONS1>
<USU_CONDITIONS2 TIPO="MC">AND USU_ID=5</USU_CONDITIONS2>
<USU_CONDITIONS3 TIPO="ZZ">AND USU_ID=9</USU_CONDITIONS3>
</PARAMETERS>
</ROOT>'
-- RESULTS
SELECT txt = T.Item.value('data(.)', 'varchar(255)')
FROM @xml.nodes('//PARAMETERS/*') AS T(Item)
WHERE T.Item.value('data(@TIPO)', 'varchar(255)')='MC'
-- output
AND USU_ID=4
AND USU_ID=5
关于xml - 如何使用 XQUERY 在 T-SQL 中获取给定 XML 属性的许多元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16780108/