source

파이썬에서 XSLT를 사용하여 XML 파일을 변환하는 방법은?

nicesource 2023. 10. 31. 22:23
반응형

파이썬에서 XSLT를 사용하여 XML 파일을 변환하는 방법은?

좋은 하루!파이썬에서 xslt를 사용하여 xml을 변환해야 합니다.저는 php로 된 샘플 코드를 가지고 있습니다.

이것을 파이썬에서 구현하는 방법이나 유사한 것을 어디서 찾을 수 있습니까?감사해요!

$xmlFileName = dirname(__FILE__)."example.fb2";
$xml = new DOMDocument();
$xml->load($xmlFileName);

$xslFileName = dirname(__FILE__)."example.xsl";
$xsl = new DOMDocument;
$xsl->load($xslFileName);

// Configure the transformer
$proc = new XSLTProcessor();
$proc->importStyleSheet($xsl); // attach the xsl rules
echo $proc->transformToXML($xml);

lxml을 사용하면,

import lxml.etree as ET

dom = ET.parse(xml_filename)
xslt = ET.parse(xsl_filename)
transform = ET.XSLT(xslt)
newdom = transform(dom)
print(ET.tostring(newdom, pretty_print=True))

LXML은 libxml2 및 libxslt를 기반으로 하는 파이썬에서 XML 처리를 위해 널리 사용되는 고성능 라이브러리이며 XSLT를 위한 기능도 포함합니다.

가장 좋은 방법은 lxml을 사용하는 것이지만 XSLT 1만 지원합니다.

import os
import lxml.etree as ET

inputpath = "D:\\temp\\"
xsltfile = "D:\\temp\\test.xsl"
outpath = "D:\\output"


for dirpath, dirnames, filenames in os.walk(inputpath):
            for filename in filenames:
                if filename.endswith(('.xml', '.txt')):
                    dom = ET.parse(inputpath + filename)
                    xslt = ET.parse(xsltfile)
                    transform = ET.XSLT(xslt)
                    newdom = transform(dom)
                    infile = unicode((ET.tostring(newdom, pretty_print=True)))
                    outfile = open(outpath + "\\" + filename, 'a')
                    outfile.write(infile)

XSLT 2를 사용하려면 saxon with python에서 옵션을 확인할 수 있습니다.

언급URL : https://stackoverflow.com/questions/16698935/how-to-transform-an-xml-file-using-xslt-in-python

반응형