rclxslt: avoid spurious exception when the input (openoffice doc) is empty
This commit is contained in:
parent
1c55eeda31
commit
7b5f701b1d
@ -31,40 +31,40 @@ if PY2:
|
|||||||
except:
|
except:
|
||||||
print("RECFILTERROR HELPERNOTFOUND python:libxml2/python:libxslt1")
|
print("RECFILTERROR HELPERNOTFOUND python:libxml2/python:libxslt1")
|
||||||
sys.exit(1);
|
sys.exit(1);
|
||||||
|
def _apply_sheet_doc(sheet, doc):
|
||||||
|
styledoc = libxml2.parseMemory(sheet, len(sheet))
|
||||||
|
style = libxslt.parseStylesheetDoc(styledoc)
|
||||||
|
result = style.applyStylesheet(doc, None)
|
||||||
|
res = ""
|
||||||
|
try:
|
||||||
|
res = style.saveResultToString(result)
|
||||||
|
except Exception as err:
|
||||||
|
# print("saveResultToString got exception: %s"%err)
|
||||||
|
pass
|
||||||
|
style.freeStylesheet()
|
||||||
|
doc.freeDoc()
|
||||||
|
result.freeDoc()
|
||||||
|
return res
|
||||||
def apply_sheet_data(sheet, data):
|
def apply_sheet_data(sheet, data):
|
||||||
styledoc = libxml2.parseMemory(sheet, len(sheet))
|
|
||||||
style = libxslt.parseStylesheetDoc(styledoc)
|
|
||||||
doc = libxml2.parseMemory(data, len(data))
|
doc = libxml2.parseMemory(data, len(data))
|
||||||
result = style.applyStylesheet(doc, None)
|
return _apply_sheet_doc(sheet, doc)
|
||||||
res = style.saveResultToString(result)
|
|
||||||
style.freeStylesheet()
|
|
||||||
doc.freeDoc()
|
|
||||||
result.freeDoc()
|
|
||||||
return res
|
|
||||||
def apply_sheet_file(sheet, fn):
|
def apply_sheet_file(sheet, fn):
|
||||||
styledoc = libxml2.parseMemory(sheet, len(sheet))
|
|
||||||
style = libxslt.parseStylesheetDoc(styledoc)
|
|
||||||
doc = libxml2.parseFile(fn)
|
doc = libxml2.parseFile(fn)
|
||||||
result = style.applyStylesheet(doc, None)
|
return _apply_sheet_doc(sheet, doc)
|
||||||
res = style.saveResultToString(result)
|
|
||||||
style.freeStylesheet()
|
|
||||||
doc.freeDoc()
|
|
||||||
result.freeDoc()
|
|
||||||
return res
|
|
||||||
else:
|
else:
|
||||||
try:
|
try:
|
||||||
from lxml import etree
|
from lxml import etree
|
||||||
except:
|
except:
|
||||||
print("RECFILTERROR HELPERNOTFOUND python3:lxml")
|
print("RECFILTERROR HELPERNOTFOUND python3:lxml")
|
||||||
sys.exit(1);
|
sys.exit(1);
|
||||||
|
def _apply_sheet_doc(sheet, doc):
|
||||||
|
styledoc = etree.fromstring(sheet)
|
||||||
|
transform = etree.XSLT(styledoc)
|
||||||
|
return bytes(transform(doc))
|
||||||
def apply_sheet_data(sheet, data):
|
def apply_sheet_data(sheet, data):
|
||||||
styledoc = etree.fromstring(sheet)
|
|
||||||
transform = etree.XSLT(styledoc)
|
|
||||||
doc = etree.fromstring(data)
|
doc = etree.fromstring(data)
|
||||||
return bytes(transform(doc))
|
return _apply_sheet_doc(sheet, doc)
|
||||||
def apply_sheet_file(sheet, fn):
|
def apply_sheet_file(sheet, fn):
|
||||||
styledoc = etree.fromstring(sheet)
|
|
||||||
transform = etree.XSLT(styledoc)
|
|
||||||
doc = etree.parse(fn)
|
doc = etree.parse(fn)
|
||||||
return bytes(transform(doc))
|
return _apply_sheet_doc(sheet, doc)
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user