Commit 1c87ce51 authored by Mark Canterbury's avatar Mark Canterbury
Browse files

Updates to converter

parent 8767a24f
Loading
Loading
Loading
Loading
Loading
+29 −5
Original line number Diff line number Diff line
import xmltodict
import sys
import logging
from pprint import pprint
import json
from pathlib import Path
import fileinput

import xmltodict
import argparse


def extract_prefixes (d):
@@ -26,12 +30,32 @@ def removePrefixes (o, prefixes):
        o[r[1]] = o.pop(r[0])

if __name__ == "__main__":
    if len(sys.argv) < 2:
        print ("Usage: xml_to_json.py filename")
    parser = argparse.ArgumentParser()
    parser.add_argument('-v', '--verbose', action='count', help='Verbose logging (can be specified multiple times)')
    parser.add_argument('-i', '--input', type=argparse.FileType('r'), default=sys.stdin, help="Path to input file (if absent, stdin is used)")
    args = parser.parse_args()

    match args.verbose:
        case v if v and v >= 2:
            logging.basicConfig(level=logging.DEBUG)
        case 1:
            logging.basicConfig(level=logging.INFO)
        case _:
            logging.basicConfig(level=logging.WARNING)

    logging.debug(f"Arguments: {args}")

    p = Path(sys.argv[1])
    s = p.read_text()
    # if (args.input):
    #     logging.info(f"Reading from {args.input}")
    #     with open(args.input) as f:
    #         s = f.read()
    # else:
    #     logging.info(f"Reading from stdin")
    #     s = sys.stdin.read()
    s = args.input.read()
    args.input.close()

    logging.debug(s)
    d = xmltodict.parse(s)['HI1Message']
    
    prefixes = extract_prefixes(d)