paulb@205 | 1 | #!/usr/bin/env python |
paulb@205 | 2 | |
paulb@205 | 3 | "Prepare a templating stylesheet." |
paulb@205 | 4 | |
paulb@205 | 5 | import XSLForms.Output |
paulb@205 | 6 | from XSLTools import XSLOutput |
paulb@205 | 7 | import libxml2dom |
paulb@205 | 8 | import sys |
paulb@205 | 9 | |
paulb@488 | 10 | def get_dict(marker): |
paulb@488 | 11 | d = {} |
paulb@488 | 12 | if marker in sys.argv: |
paulb@488 | 13 | i = sys.argv.index(marker) + 1 |
paulb@488 | 14 | while i < len(sys.argv) and not sys.argv[i].startswith("--"): |
paulb@488 | 15 | d[sys.argv[i]] = sys.argv[i+1] |
paulb@488 | 16 | i += 2 |
paulb@488 | 17 | return d |
paulb@488 | 18 | |
paulb@205 | 19 | if __name__ == "__main__": |
paulb@205 | 20 | try: |
paulb@205 | 21 | input_xml = sys.argv[1] |
paulb@205 | 22 | trans_xsl = sys.argv[2] |
paulb@205 | 23 | output_xml = sys.argv[3] |
paulb@205 | 24 | except IndexError: |
paulb@205 | 25 | print "Please specify an input filename, a template filename and an output filename." |
paulb@205 | 26 | print "For example:" |
paulb@246 | 27 | print "xslform_output.py input.xml output.xsl output.xhtml" |
paulb@488 | 28 | print |
paulb@488 | 29 | print "Additional references may be specified in parameter name and value pairs." |
paulb@488 | 30 | print "For example:" |
paulb@488 | 31 | print "--references translations translations.xml" |
paulb@488 | 32 | print "--parameters locale en_GB" |
paulb@205 | 33 | sys.exit(1) |
paulb@205 | 34 | |
paulb@488 | 35 | references = get_dict("--references") |
paulb@488 | 36 | parameters = get_dict("--parameters") |
paulb@488 | 37 | |
paulb@488 | 38 | proc = XSLOutput.Processor([trans_xsl], references=references, parameters=parameters) |
paulb@205 | 39 | proc.send_output(open(output_xml, "wb"), "utf-8", libxml2dom.parse(input_xml)) |
paulb@205 | 40 | |
paulb@205 | 41 | # vim: tabstop=4 expandtab shiftwidth=4 |