반응형
파이썬에서 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
반응형
'source' 카테고리의 다른 글
angular 4 unit testing error 'TypeError: cctor는 생성자가 아닙니다' (0) | 2023.10.31 |
---|---|
유휴 상태일 때 MySQL Workbench 연결이 끊어짐 (0) | 2023.10.31 |
사용 중인 waitpid()의 예? (0) | 2023.10.31 |
CREATE 명령이 사용자에게 거부됨 (0) | 2023.10.31 |
mysql은 int를 통화로 선택하거나 통화 형식으로 변환합니까? (0) | 2023.10.31 |