itsb/bin/xml2json

40 lines
773 B
Python
Executable File

#!/usr/bin/env python3
import argparse
import json
import xmltodict
import sys
def main():
parser = argparse.ArgumentParser()
parser.add_argument(
'infile',
type=argparse.FileType('r'),
nargs='?',
default=sys.stdin,
)
parser.add_argument(
'outfile',
type=argparse.FileType('w'),
nargs='?',
default=sys.stdout,
)
parser.add_argument(
'-p',
'--pretty',
help='Indent JSON with tabs and newlines.',
action='store_true',
default=False,
)
args = parser.parse_args()
args.outfile.write(json.dumps(
xmltodict.parse(args.infile.read()),
indent="\t" if args.pretty else None,
))
if __name__ == '__main__':
main()