Project

Profile

Help

Bug #6306

closed

Saxon in python is not releasing memory

Added by Vijay S 4 months ago. Updated 3 months ago.

Status:
Closed
Priority:
High
Category:
Python API
Start date:
2023-12-26
Due date:
% Done:

100%

Estimated time:
Found in version:
12.4.1
Fixed in version:
12.4.2
Platforms:

Description

Saxon in python is not releasing memory.

I am trying to use Saxonche in python for XSLT2.0 transformation.

I am using the below code in a for loop in my django project, it is providing the expected output but it is consuming a lot of memory and the memory is not getting released, because of which the container is getting restarted. I have tried searching the saxonica documents but unable to find the root cause or fix this issue.

from saxonche import *
with (PySaxonProcessor() as proc):
xslt_process = proc.new_xslt30_processor()
document = proc.parse_xml(xml_text=dom) # Load the XML document
stylesheet = xslt_process.compile_stylesheet(stylesheet_file=xsl_file_path) # Compile the XSLT stylesheet
# Apply the transformation
input_xslt = stylesheet.transform_to_string(xdm_node=document)

# cleaning string which we got from XSLT
input_xslt = ''.join(input_xslt.split("\n")).replace("</output1>", '')
input_xslt = input_xslt.replace("<output1>", '').strip()
input_xslt = input_xslt.replace('<?xml version="1.0" encoding="UTF-8"?>', '').strip()
input_xslt = [x.strip() for x in input_xslt.split(",")]
return input_xslt

Files

saxonc_memory_issue.py (1.45 KB) saxonc_memory_issue.py Vijay S, 2023-12-26 14:21

Please register to edit this issue

Also available in: Atom PDF