1 ###############################################################################
2 ###############################################################################
12 Python package 'lxml' is not available.
13 You may try to use 'xml2rst.xsl' with a standalone XSLT processor like 'xalan' or 'xsltproc'""")
15 ###############################################################################
16 ###############################################################################
20 @var MainXsltNm: Name of the main XSLT source file
23 MainXsltNm
= "xml2rst.xsl"
25 ###############################################################################
26 ###############################################################################
27 # Specialized functions
29 def convert(inNm
, outNm
, settings
):
33 @param inNm: Filename of input file.
36 @param outNm: Filename of output file or None.
37 @type outNm: str | None
42 raise Exception("Can't open input file %r: %s" % ( inNm
, e
, ))
44 modP
= os
.path
.dirname(__file__
)
45 mainXsltNm
= os
.path
.join(modP
, MainXsltNm
)
47 mainXsltF
= open(mainXsltNm
)
49 raise Exception("Can't open main XSLT file %r: %s" % ( mainXsltNm
, e
, ))
51 xsltParser
= etree
.XMLParser()
52 mainXsltDoc
= etree
.parse(mainXsltF
, xsltParser
)
54 mainXslt
= etree
.XSLT(mainXsltDoc
)
56 inParser
= etree
.XMLParser()
58 inDoc
= etree
.parse(inF
, inParser
)
60 raise Exception("Error parsing input file %r: %s" % ( inNm
, e
, ))
64 if settings
.fold
is not None:
65 xsltParams
['fold'] = str(settings
.fold
)
66 if settings
.adornment
is not None:
67 xsltParams
['adornment'] = "'" + settings
.adornment
+ "'"
69 result
= mainXslt(inDoc
, **xsltParams
)
71 raise Exception("Error transforming input file %r: %s" % ( inNm
, e
, ))
75 outF
= open(outNm
, "w")
77 raise Exception("Can't open output file %r: %s" % ( outNm
, e
, ))
81 sys
.stdout
.write(outS
)