Project

Profile

Help

I/O error reported by XML parser for the named output_file of apply_templates_returning_file

Added by Martin Honnen 9 months ago

I have run into another problem using apply_templates_returning_file, using set_cwd(os.getcwd()) I thought it would work but once I started using paths to subdirectories the new problem occurs: I get an "I/O error reported by XML parser processing" claiming it can't find the file named as the output_file.

Sample Python code is:

import os

import saxonc

def XSLT_Simple2(proc):

    xslt30_processor = proc.new_xslt30_processor()

    output_file_name = "output-from-XSLT_Simple2.xml"

    xslt30_processor.set_cwd(os.getcwd())
     
    xslt30_processor.apply_templates_returning_file(source_file="data/sample-input1.xml", stylesheet_file="styles/identity.xsl", output_file=output_file_name)



with saxonc.PySaxonProcessor() as proc:
    print(proc.version)

    XSLT_Simple2(proc)

On running (in C:\SomeDir\SomeFolder), this outputs

Saxon/C 1.2.1 running with Saxon-HE 9.9.1.5C from Saxonica
Error
  I/O error reported by XML parser processing C:\SomeDir\SomeFolder\output-from-XSLT_Simple2.xml: Das System kann die angegebene Datei nicht finden

so for some reason I don't understand Saxon attempts to feed the file output-from-XSLT_Simple2.xml to the XML parser which obviously then fails as the code is supposed to create that file.

If I have the input and XSLT file in the working directory and change the line to call apply_templates_returning_file to

    xslt30_processor.apply_templates_returning_file(source_file="sample-input1.xml", stylesheet_file="identity.xsl", output_file=output_file_name)

the code works as intended.


Replies (5)

Please register to reply

RE: I/O error reported by XML parser for the named output_file of apply_templates_returning_file - Added by Martin Honnen 9 months ago

If I first create a file of that name (outside of the Python code) the error then says

Static error at root on line 1 column 45 of output-from-XSLT_Simple2.xml:
  XTSE0150: The supplied file does not appear to be a stylesheet

so it seems the file read attempt is done to read it as XSLT code.

RE: I/O error reported by XML parser for the named output_file of apply_templates_returning_file - Added by O'Neil Delpratt 9 months ago

Update:

I ran a similar python script on a linux machine and it ran successfully. Therefore I think it is failing to resolve the files due to some difference on the linux/windows machine.

I will next investigate this python script on a windows machine.

RE: I/O error reported by XML parser for the named output_file of apply_templates_returning_file - Added by Martin Honnen 9 months ago

Any update on this? I managed to install an Ubuntu version as a Windows 10 Linux Subsystem and then run saxonc with Python 3 there, using the same files, and indeed it works with LINUX. But I am lost what could be the reason for the strange behaviour on Windows and how to fix it.

RE: I/O error reported by XML parser for the named output_file of apply_templates_returning_file - Added by O'Neil Delpratt 9 months ago

Sorry no progress as yet, I have let this one slip. I have created a bug issue to keep track of its progress: #4388

    (1-5/5)

    Please register to reply