Crys
Lt. Commander
- Registriert
- Apr. 2009
- Beiträge
- 1.653
Hallo miteinander,
ich muss viele xml- (oder genauer gml-) Dateien bearbeiten. Es geht darum, aus einer Datei eine neue zu erstellen, welche nur Tags enthält, welche bestimmte Attribute enthalten.
Die Sprache oder Methode ist egal, es soll so schnell wie möglich funktionieren, da es ca. 1TB an Daten sind. Am liebsten per Linux Shell.
Ein Beispiel:
Hier sieht man in Zeile 8den Tag "bldg:function" mit dem Inhalt "234". Immer wenn der Inhalt dieses Tags einen bestimmten Wert enthält soll der komplette vorherige Tag "bldg:Building" kopiert werden, sowie alle Eltern-Element "core:cityObjectMember" und "core:CityModel", aber ohne Kinder. Also Zeile 1 bis 12 und 22 und 26.
"bldg:Building" enthält immer eines oder kein "bldg:function".
"core:cityObjectMember" kann mehrere "bldg:Building" enthalten.
"core:CityModel" gibt es je Datei nur einmal.
Dies alles soll für 1 Mio. Dateien gelooped werden.
Wie mache ich das am geschicktesten?
Vielen Dank.
ich muss viele xml- (oder genauer gml-) Dateien bearbeiten. Es geht darum, aus einer Datei eine neue zu erstellen, welche nur Tags enthält, welche bestimmte Attribute enthalten.
Die Sprache oder Methode ist egal, es soll so schnell wie möglich funktionieren, da es ca. 1TB an Daten sind. Am liebsten per Linux Shell.
Ein Beispiel:
XML:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<core:CityModel xmlns:xal=usw>
<core:cityObjectMember>
<bldg:Building gml:id="ID123">
<core:123>
...
<core:123>
<bldg:function>234</bldg:function>
<core:789>
...
<core:789>
</bldg:Building>
<bldg:Building gml:id="ID789">
<core:123>
...
<core:123>
<bldg:function>678</bldg:function>
<core:789>
...
<core:789>
</bldg:Building>
</core:cityObjectMember>
<core:cityObjectMember>
...
</core:cityObjectMember>
</core:CityModel>
Hier sieht man in Zeile 8den Tag "bldg:function" mit dem Inhalt "234". Immer wenn der Inhalt dieses Tags einen bestimmten Wert enthält soll der komplette vorherige Tag "bldg:Building" kopiert werden, sowie alle Eltern-Element "core:cityObjectMember" und "core:CityModel", aber ohne Kinder. Also Zeile 1 bis 12 und 22 und 26.
"bldg:Building" enthält immer eines oder kein "bldg:function".
"core:cityObjectMember" kann mehrere "bldg:Building" enthalten.
"core:CityModel" gibt es je Datei nur einmal.
Dies alles soll für 1 Mio. Dateien gelooped werden.
Wie mache ich das am geschicktesten?
Vielen Dank.