Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Select node based on child node value in XSLT

I would like to select only those node where child node value matches a certain value.

Here is my orig XML:

This is my orig XML

<Entry>
 <Name>AAA</Name>
 <line id="1">A</line>
 <line id="2">B</line>
</Entry>
<Entry>
 <Name>BBB</Name>
 <line id="1">C</line>
 <line id="2">D</line>
</Entry>
<Entry>
 <Name>AAA</Name>
 <line id="1">E</line>
 <line id="2">F</line>
</Entry>
<Entry>
 <Name>CCC</Name>
 <line id="1">G</line>
 <line id="2">H</line>
</Entry>

I would like to extract all entries where Name = 'AAA', so the result would be:

<Entry>
 <Name>AAA</Name>
 <line id="1">A</line>
 <line id="2">B</line>
</Entry>
<Entry>
 <Name>AAA</Name>
 <line id="1">E</line>
 <line id="2">F</line>
</Entry>

I am limited to using XSLT 1.0.

Please provide any guidance. I am stuck on how to drop all sub-nodes for others that do not match.

regards, Rahul

like image 909
Rahul Avatar asked Sep 24 '12 02:09

Rahul


1 Answers

The following will select all entry nodes with subnodes 'Name' that equal AAA.

//Entry[Name = "AAA"]
like image 139
xshoppyx Avatar answered Oct 03 '22 22:10

xshoppyx