Ngày tốt! Cần chuyển đổi XML bằng XSLT trong Python. Tôi có một mã mẫu trong PHP.
Làm thế nào để thực hiện điều này trong Python hoặc nơi để tìm một cái gì đó tương tự? Cảm ơn bạn!
$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];
Khi được hỏi ngày 22 tháng 5 năm 2013 lúc 18:17May 22, 2013 at 18:17
aphexaphexaphex
1.1071 Huy hiệu vàng12 Huy hiệu bạc17 Huy hiệu đồng1 gold badge12 silver badges17 bronze badges
Sử dụng 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]]
R sahu
Huy hiệu vàng 202K1414 gold badges150 silver badges264 bronze badges
Đã trả lời ngày 22 tháng 5 năm 2013 lúc 18:23May 22, 2013 at 18:23
UnutbuUnutbuunutbu
803K173 Huy hiệu vàng1727 Huy hiệu bạc1627 Huy hiệu đồng173 gold badges1727 silver badges1627 bronze badges
6
LXML là một thư viện hiệu suất cao được sử dụng rộng rãi để xử lý XML trong Python dựa trên libxml2 và libxslt - nó cũng bao gồm các cơ sở cho XSLT.
R sahu
Huy hiệu vàng 202K1414 gold badges150 silver badges264 bronze badges
Đã trả lời ngày 22 tháng 5 năm 2013 lúc 18:23May 22, 2013 at 18:22
UnutbuUnutbumiku
803K173 Huy hiệu vàng1727 Huy hiệu bạc1627 Huy hiệu đồng46 gold badges303 silver badges307 bronze badges
LXML là một thư viện hiệu suất cao được sử dụng rộng rãi để xử lý XML trong Python dựa trên libxml2 và libxslt - nó cũng bao gồm các cơ sở cho XSLT.
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]
Đã trả lời ngày 22 tháng 5 năm 2013 lúc 18:22
MikumikuOct 17, 2017 at 10:27
Phim thương hiệu vàng 176K46Maliq
Cách tốt nhất là làm điều đó bằng LXML, nhưng nó chỉ hỗ trợ XSLT 11 gold badge2 silver badges9 bronze badges
Tài liệu nguồn là một bảng nội dung được viết ở định dạng XML và chúng tôi muốn hiển thị nó trong HTML. Chúng tôi sẽ sử dụng mô -đun XSLT của thư viện LXML trong Python
Và mẫu XSLT được sử dụng để chuyển đổi nó thành HTML
//makble.com/
Mã Python:
import lxml.html from lxml import etree xslt_doc = etree.parse["test-xslt.xslt"] xslt_transformer = etree.XSLT[xslt_doc] source_doc = etree.parse["toc-test.xml"] output_doc = xslt_transformer[source_doc] print[str[output_doc]] output_doc.write["output-toc.html", pretty_print=True]
Trong HTML, nó có thể trông như thế này