First off here is a small sample of XML that i am working on
<RootNode>
<node type="FILE">
<subNode>
<subValue1>105</subValue1>
<subValue2>firstpayment</subValue2>
</subNode>
<subNode>
<subValue1>120</subValue1>
<subValue2>secondpayment</subValue2>
</subNode>
</node>
<node type="DIR">
<subNode>
<subValue1>300</subValue1>
<subValue2>firstpayment</subValue2>
</subNode>
<subNode>
<subValue1>350</subValue1>
<subValue2>secondpayment</subValue2>
</subNode>
</node>
<node type="FILE">
<subNode>
<subValue1>180</subValue1>
<subValue2>firstpayment</subValue2>
</subNode>
<subNode>
<subValue1>260</subValue1>
<subValue2>secondpayment</subValue2>
</subNode>
</node>
</RootNode>
How to retrieve the information of subvalue1 and subvalue2 if node type='File' ?
Result should show as below
I am able to retrieve the data by loading the data to a table by using the following method.
insert into @Table values (@xml)
SELECT
DATA.query('(./subValue1)').value('.','INT') as PAY,
DATA.query('(./subValue2)').value('.','VARCHAR(MAX)') as MODE
FROM @Table TF
CROSS APPLY @xml.nodes('/RootNode/node/subNode') AS HF(DATA)
But I want data of only those subnode where node type="File". as of now it is giving me value of all subnode ( So i get 6 results instead of only 4).
Any help from anyone would be greatly appreciated.