I've a large xml file and need to create a partial 'copy' of this file. (Using C#) I need to keep the same xml structure, but only need the parts where a condition is 'true'.
An example structure:
<?xml version="1.0" encoding="utf-8"?>
<country name="Netherlands">
<region name="NH">
<city name="Aalsmeer">
<district name="Some district">
<part type="slum" />
</district>
<contact adres="StreetName" telephone="0000000000" valid="false" />
<residents number="10000" />
<homes number = "7000" />
</city>
<city name="Heemskerk">
<district name="Some district">
<part type="workersDistrict" />
</district>
<contact adres="StreetName" telephone="0000000000" valid="true" />
<residents number="10000" />
<homes number = "7000" />
</city>
</region>
<region name="ZH">
<city name="Rotterdam">
<district name="Some district">
<part type="workersDistrict" />
</district>
<contact adres="StreetName" telephone="0000000000" valid="true" />
<residents number="10000" />
<homes number = "7000" />
</city>
<city name="Moerdijk">
<district name="Some district">
<part type="residential area" />
</district>
<contact adres="StreetName" telephone="0000000000" valid="false" />
<residents number="10000" />
<homes number = "7000" />
</city>
</region>
</country>
I only need the 'city' elements where the attribute 'valid' is 'true'. The new XML file should look like this:
<?xml version="1.0" encoding="utf-8"?>
<country name="Netherlands">
<region name="NH">
<city name="Heemskerk">
<district name="Some district"
<part type="workersDistrict" />
</district>
<contact adres="StreetName" telephone="0000000000" valid="true" />
<residents number="10000" />
<homes number = "7000" />
</city>
</region>
<region name="ZH">
<city name="Rotterdam">
<district name="Some district"
<part type="workersDistrict" />
</district>
<contact adres="StreetName" telephone="0000000000" valid="true" />
<residents number="10000" />
<homes number = "7000" />
</city>
</region>
</country>
How do I get this done as quickly as possible (taking into account the number of city elements (e.g. 100630) and the file size (e.g. 63,0 MB)?