50 lines
1.1 KiB
Plaintext
50 lines
1.1 KiB
Plaintext
|
#! /usr/bin/env python
|
||
|
|
||
|
import sys
|
||
|
try:
|
||
|
import xml.etree.cElementTree as etree
|
||
|
except:
|
||
|
import xml.etree.ElementTree as etree
|
||
|
|
||
|
def child (elem, name):
|
||
|
for e in elem.getchildren():
|
||
|
if e.tag == name:
|
||
|
return e
|
||
|
return None
|
||
|
|
||
|
def children (elem, name=None):
|
||
|
l = elem.getchildren()
|
||
|
if name:
|
||
|
l = [e for e in l if e.tag == name]
|
||
|
return l
|
||
|
|
||
|
xml = etree.parse(sys.argv[1])
|
||
|
|
||
|
for schema in child(xml.getroot(), "schemalist").getchildren():
|
||
|
e = child(schema, "short")
|
||
|
if e is not None:
|
||
|
schema.remove(e)
|
||
|
|
||
|
e = child(schema, "long")
|
||
|
if e is not None:
|
||
|
schema.remove(e)
|
||
|
|
||
|
for locale in children(schema, "locale"):
|
||
|
# One locale must exist so leave C locale...
|
||
|
a = locale.attrib.get("name")
|
||
|
if a == 'C':
|
||
|
continue
|
||
|
e = child(locale, "default")
|
||
|
if e is None:
|
||
|
schema.remove(locale)
|
||
|
else:
|
||
|
e = child(locale, "short")
|
||
|
if e is not None:
|
||
|
locale.remove(e)
|
||
|
e = child(locale, "long")
|
||
|
if e is not None:
|
||
|
locale.remove(e)
|
||
|
|
||
|
xml.write(sys.stdout, "UTF-8")
|
||
|
|