Exemplo n.º 1
0
def transform_xml(xml: bytes) -> str:
    with saxonc.PySaxonProcessor(license=False) as proc:
        base_dir = os.getcwd()
        xslt_path = os.path.join(base_dir, "test.xslt")

        xslt_proc = proc.new_xslt30_processor()

        node = proc.parse_xml(xml_text=xml.decode("utf-8"))

        result = xslt_proc.transform_to_string(stylesheet_file=xslt_path, xdm_node=node)
        
        return result
Exemplo n.º 2
0
 def __init__(self):
     self.saxon_processor = saxonc.PySaxonProcessor(license=False)
def saxon_processor() -> saxonc.PySaxonProcessor:
    return saxonc.PySaxonProcessor(license=False)
Exemplo n.º 4
0
import saxonc

with saxonc.PySaxonProcessor(license=False) as proc:

    print("Test Python")
    print(proc.version)
    #print(dir(proc))
    xdmAtomicval = proc.make_boolean_value(False)

    xsltproc = proc.new_xslt_processor()
    document = proc.parse_xml(
        xml_text=
        "<out><person>text1</person><person>text2</person><person>text3</person></out>"
    )
    xsltproc.set_source(xdm_node=document)
    xsltproc.compile_stylesheet(
        stylesheet_text=
        "<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='2.0'>       <xsl:param name='values' select='(2,3,4)' /><xsl:output method='xml' indent='yes' /><xsl:template match='*'><output><xsl:value-of select='//person[1]'/><xsl:for-each select='$values' ><out><xsl:value-of select='. * 3'/></out></xsl:for-each></output></xsl:template></xsl:stylesheet>"
    )
    xsltproc.set_jit_compilation(True)

    output2 = xsltproc.transform_to_string()
    print(output2)
    print('test 0 \n')
    xml = """\
    <out>
        <person>text1</person>
        <person>text2</person>
        <person>text3</person>
    </out>"""
    xp = proc.new_xpath_processor()