问题
In python 2.6 I did this to achieve an xsl tranform
import libxml2
import libxslt
...
styledoc = libxml2.parseFile(my_xslt_file)
style = libxslt.parseStylesheetDoc(styledoc)
doc = libxml2.parseDoc(siri_response_data)
result = style.applyStylesheet(doc, None)
...
What would be the equivalent in Python 3.2?
I ask because it seems that lnxml and libxslt are not available in python3.2. I have heard of lxml - is this a direct equivalent of libxml2 + libxslt or does it have different calling patterns (needing rewriting of the code)?
回答1:
The analog of your code using lxml:
from lxml import etree
# ...
styledoc = etree.parse(my_xslt_file)
transform = etree.XSLT(styledoc)
doc = etree.fromstring(siri_response_data)
result = transform(doc)
# ...
lxml
lists support for Python 3.2
lxml uses libxml2/libxslt under the hood so results should be the same. It uses Cython to generate C extensions that work both on Python 2.x and 3.x from the same source, example.
来源:https://stackoverflow.com/questions/8971173/python3-and-xml-xslt-libraries