Revision 49
Added by Aaron Marcuse-Kubitza about 13 years ago
data2xml | ||
---|---|---|
12 | 12 |
import xpath |
13 | 13 |
|
14 | 14 |
def main(): |
15 |
prog_name = sys.argv.pop(0) |
|
16 |
try: |
|
17 |
dest = sys.argv.pop(0) |
|
18 |
mappings_path = sys.argv.pop(0) |
|
19 |
except IndexError: raise Exception('Usage: '+prog_name |
|
20 |
+' dest_mappings_column mappings_path <dataset >output') |
|
15 |
prog_name = sys.argv[0] |
|
16 |
try: mappings_path = sys.argv[1] |
|
17 |
except ValueError: |
|
18 |
raise Exception('Usage: '+prog_name+' mappings_path <dataset >output') |
|
21 | 19 |
|
22 | 20 |
# Get mappings |
23 | 21 |
mappings = {} |
24 | 22 |
has_types = False # whether outer elements are type containiners |
25 | 23 |
stream = open(mappings_path, 'rb') |
26 | 24 |
reader = csv.reader(stream, delimiter=',', quotechar='"') |
27 |
fieldnames = reader.next() |
|
28 |
src = fieldnames[0] |
|
29 |
dest_idx = fieldnames.index(dest) |
|
25 |
src, dest = reader.next()[:2] |
|
30 | 26 |
for row in reader: |
31 |
name = row[0] |
|
32 |
path = row[dest_idx] |
|
27 |
name, path = row[:2] |
|
33 | 28 |
if name != '' and path != '': |
34 | 29 |
if path.startswith('/*s/'): has_types = True # *s used for type elem |
35 | 30 |
path = path.replace('<name>', name) |
Also available in: Unified diff
Added refactored mappings and changed data2xml to use the new 2-column format