Filter a .kml file (xml) with data set from text file

I have a .kml file. So I want filter the .kml to get only the tags that have this numeric codes that they are in a text file

11951
11952
74014
11964
11965
11969
11970
11971
11972
60149
74018
74023
86378
11976
11980
11983
11984
11987
74026
74093
86380

this is example from my kml file

<Placemark>
    <name>CE CATOLICO RICARDO POMA</name>
    <ExtendedData><SchemaData schemaUrl="#escuelas">
        <SimpleData name="DEPARTAMEN">SAN SALVADOR</SimpleData>
        <SimpleData name="MUNICIPIO">TONACATEPEQUE</SimpleData>
        <SimpleData name="CODIGO">11951</SimpleData>
        <SimpleData name="ESTATUS"></SimpleData>
        <SimpleData name="LAMBERTX">484840</SimpleData>
        <SimpleData name="LAMBERTY">297529</SimpleData>
        <SimpleData name="MODALIDAD">SUBV</SimpleData>
        <SimpleData name="NOMBRE_ESC">CE CATOLICO RICARDO POMA</SimpleData>
        <SimpleData name="DIRECCION">RESIDENCIAL  LIBERTAD CALLE PRINCIPAL</SimpleData>
        <SimpleData name="CASERIO"></SimpleData>
        <SimpleData name="CANTON"></SimpleData>
        <SimpleData name="TELEFONO">25020215</SimpleData>
        <SimpleData name="TURNO1">480</SimpleData>
        <SimpleData name="TURNO2">160</SimpleData>
        <SimpleData name="TURNO3"></SimpleData>
        <SimpleData name="TOTALMATRI">640</SimpleData>
        <SimpleData name="AULASOK">15</SimpleData>
        <SimpleData name="AULASREG"></SimpleData>
        <SimpleData name="AULASMALAS"></SimpleData>
        <SimpleData name="TOTALAULAS">15</SimpleData>
        <SimpleData name="AREA">3507</SimpleData>
        <SimpleData name="ENERGIA">SI</SimpleData>
        <SimpleData name="AGUAP">SI</SimpleData>
        <SimpleData name="AGUAN">SI</SimpleData>
        <SimpleData name="LATGRADOS">13</SimpleData>
        <SimpleData name="LATMIN">47</SimpleData>
        <SimpleData name="LATSEG">59</SimpleData>
        <SimpleData name="LONGRADOS">89</SimpleData>
        <SimpleData name="LONMIN">8</SimpleData>
        <SimpleData name="LONSEG">25</SimpleData>
        <SimpleData name="ALTURA">489</SimpleData>
        <SimpleData name="EPE">3</SimpleData>
        <SimpleData name="CAN_SATELI">7</SimpleData>
        <SimpleData name="FECHA">2005/11/22</SimpleData>
        <SimpleData name="CONTRATO">693/2005</SimpleData>
        <SimpleData name="EXPR1"></SimpleData>
        <SimpleData name="EXPR2"></SimpleData>
        <SimpleData name="TECNICO_RE">JOSE DAVID SALGADO</SimpleData>
        <SimpleData name="A_O">2006</SimpleData>
        <SimpleData name="longitud">-89.1402778</SimpleData>
        <SimpleData name="latitud">13.7997222</SimpleData>
    </SchemaData></ExtendedData>
      <Point><coordinates>-89.1402079085575,13.798839408878646</coordinates></Point>
  </Placemark>
  <Placemark>
    <name>CE URBANIZACION CUMBRES DE SAN BARTOLO</name>
    <ExtendedData><SchemaData schemaUrl="#escuelas">
        <SimpleData name="DEPARTAMEN">SAN SALVADOR</SimpleData>
        <SimpleData name="MUNICIPIO">TONACATEPEQUE</SimpleData>
        <SimpleData name="CODIGO">74014</SimpleData>
        <SimpleData name="ESTATUS">Revisar</SimpleData>
        <SimpleData name="LAMBERTX">487889</SimpleData>
        <SimpleData name="LAMBERTY">289859</SimpleData>
        <SimpleData name="MODALIDAD">ACE</SimpleData>
        <SimpleData name="NOMBRE_ESC">CE URBANIZACION CUMBRES DE SAN BARTOLO</SimpleData>
        <SimpleData name="DIRECCION">FINAL CALLE PRINCIPAL COL LA CAMPANERA</SimpleData>
        <SimpleData name="CASERIO"></SimpleData>
        <SimpleData name="CANTON">LA UNION</SimpleData>
        <SimpleData name="TELEFONO">22942617</SimpleData>
        <SimpleData name="TURNO1">245</SimpleData>
        <SimpleData name="TURNO2">126</SimpleData>
        <SimpleData name="TURNO3"></SimpleData>
        <SimpleData name="TOTALMATRI">371</SimpleData>
        <SimpleData name="AULASOK">11</SimpleData>
        <SimpleData name="AULASREG"></SimpleData>
        <SimpleData name="AULASMALAS"></SimpleData>
        <SimpleData name="TOTALAULAS">11</SimpleData>
        <SimpleData name="AREA">2500</SimpleData>
        <SimpleData name="ENERGIA">SI</SimpleData>
        <SimpleData name="AGUAP">SI</SimpleData>
        <SimpleData name="AGUAN">SI</SimpleData>
        <SimpleData name="LATGRADOS">13</SimpleData>
        <SimpleData name="LATMIN">43</SimpleData>
        <SimpleData name="LATSEG">50</SimpleData>
        <SimpleData name="LONGRADOS">89</SimpleData>
        <SimpleData name="LONMIN">6</SimpleData>
        <SimpleData name="LONSEG">43</SimpleData>
        <SimpleData name="ALTURA">749</SimpleData>
        <SimpleData name="EPE">3</SimpleData>
        <SimpleData name="CAN_SATELI">3</SimpleData>
        <SimpleData name="FECHA">2005/11/22</SimpleData>
        <SimpleData name="CONTRATO">693/2005</SimpleData>
        <SimpleData name="EXPR1"></SimpleData>
        <SimpleData name="EXPR2"></SimpleData>
        <SimpleData name="TECNICO_RE">JOSE DAVID SALGADO</SimpleData>
        <SimpleData name="A_O">2006</SimpleData>
        <SimpleData name="longitud">-89.1119444</SimpleData>
        <SimpleData name="latitud">13.7305556</SimpleData>
    </SchemaData></ExtendedData>
      <Point><coordinates>-89.111976076037394,13.729521887363052</coordinates></Point>
  </Placemark>
  <Placemark>
    <name>COLEGIO PROFESORA RAQUEL CHAVEZ MENDEZ</name>
    <ExtendedData><SchemaData schemaUrl="#escuelas">
        <SimpleData name="DEPARTAMEN">SAN SALVADOR</SimpleData>
        <SimpleData name="MUNICIPIO">TONACATEPEQUE</SimpleData>
        <SimpleData name="CODIGO">21306</SimpleData>
        <SimpleData name="ESTATUS"></SimpleData>
        <SimpleData name="LAMBERTX">488932</SimpleData>
        <SimpleData name="LAMBERTY">289316</SimpleData>
        <SimpleData name="MODALIDAD">PRIV</SimpleData>
        <SimpleData name="NOMBRE_ESC">COLEGIO PROFESORA RAQUEL CHAVEZ MENDEZ</SimpleData>
        <SimpleData name="DIRECCION">URB CIMA DE SAN BARTOLO 2 FINAL C PPAL</SimpleData>
        <SimpleData name="CASERIO"></SimpleData>
        <SimpleData name="CANTON"></SimpleData>
        <SimpleData name="TELEFONO">75128749</SimpleData>
        <SimpleData name="TURNO1">157</SimpleData>
        <SimpleData name="TURNO2">130</SimpleData>
        <SimpleData name="TURNO3"></SimpleData>
        <SimpleData name="TOTALMATRI">287</SimpleData>
        <SimpleData name="AULASOK">0</SimpleData>
        <SimpleData name="AULASREG"></SimpleData>
        <SimpleData name="AULASMALAS">8</SimpleData>
        <SimpleData name="TOTALAULAS">8</SimpleData>
        <SimpleData name="AREA">200</SimpleData>
        <SimpleData name="ENERGIA">SI</SimpleData>
        <SimpleData name="AGUAP">SI</SimpleData>
        <SimpleData name="AGUAN">SI</SimpleData>
        <SimpleData name="LATGRADOS">13</SimpleData>
        <SimpleData name="LATMIN">43</SimpleData>
        <SimpleData name="LATSEG">32</SimpleData>
        <SimpleData name="LONGRADOS">89</SimpleData>
        <SimpleData name="LONMIN">6</SimpleData>
        <SimpleData name="LONSEG">9</SimpleData>
        <SimpleData name="ALTURA">659</SimpleData>
        <SimpleData name="EPE">5</SimpleData>
        <SimpleData name="CAN_SATELI">4</SimpleData>
        <SimpleData name="FECHA">2005/11/22</SimpleData>
        <SimpleData name="CONTRATO">693/2005</SimpleData>
        <SimpleData name="EXPR1"></SimpleData>
        <SimpleData name="EXPR2"></SimpleData>
        <SimpleData name="TECNICO_RE">JOSE DAVID SALGADO</SimpleData>
        <SimpleData name="A_O">2006</SimpleData>
        <SimpleData name="longitud">-89.1025000</SimpleData>
        <SimpleData name="latitud">13.7255556</SimpleData>
    </SchemaData></ExtendedData>
      <Point><coordinates>-89.102330554975865,13.72461769675952</coordinates></Point>
  </Placemark>
nawk -F'[<>]' 'FNR==NR{f1[$1];next} /SimpleData name/ {if($3 in f1)print;next}1' textFileWithCodes myKMLfile
2 Likes

So good idea. :b:

awk -F'[<>]' 'FNR==NR{f1[$1];next} /SimpleData name/&& !($3 in f1) {next}1' textFileWithCodes myKMLfile

thank you by your soon response
however
I have a .kml file. So I want filter this .kml file to get entrys

<Placemark>
.
.
.
</Placemark>

where each tag <SimpleData name="CODIGO">XXXXX</SimpleData>
is the filter to evaluate
where CODIGO= to any code that appears in my textFileWithCode

So my output myKMLfile must have a entry for each code that appears textFileWithCode

So myKMLfile will be as appears below

<Placemark>
.
.
.
<SimpleData name="CODIGO">88156</SimpleData>

.
.
.
</SchemaData></ExtendedData>
 <Point><coordinates>-89.1402079085575,13.798839408878646</coordinates></Point>
</Placemark>
<Placemark>
.
.
.
<SimpleData name="CODIGO">11952</SimpleData>

.
.
.
</SchemaData></ExtendedData>
 <Point><coordinates>-89.1402079085575,13.798839408878646</coordinates></Point>
</Placemark>

---------- Post updated 10-19-11 at 01:31 AM ---------- Previous update was 10-18-11 at 10:26 PM ----------

I will test with this script however don't wok
I need generate a output file with entrys

 <Placemark>
.
.
.
<SimpleData name="CODIGO">88156</SimpleData>

.
.
.
<Placemark>

for each code that is in code.txt file

Can you help me?

I don't think I can... I don't understand what's wrong with the posted code and/or what you're after...
Please try to describe what doesn't work and what you're expecting once more.

Please You see this url above
I am explain step by step

thank you my friend by your time Ok I explain. I have two file. So I want to filter the textFileWithCodes and myKMLfile. So I get a output file. The main filter is this line <SimpleData name="CODIGO">XXXXX</SimpleData> where XXXXX can be in textFileWithCodes Please my my friend this is a kml file The. KML expected is a map en google earth to know roads and bringing food to shelters for due to tropical storm that has left thousands homeless this week
Please You see this url above
I am explain step by step