Python3和XML/XSLT库

7
在Python 2.6中,我使用以下方法来实现XSL转换:
    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)
    ...

Python 3.2中的相应内容是什么?

我之所以这样问,是因为似乎lnxml和libxslt在python3.2中不可用。我听说过lxml - 它是libxml2 + libxslt的直接等效物吗?还是它具有不同的调用模式(需要重新编写代码)?


我认为libxml2/xslt库现在通过 ./configure 脚本的参数 --with-python=${PATH_TO_PYTHON3_BINARY}(例如,/usr/bin/python3)提供Python3绑定。 - kevinarpe
1个回答

4

使用 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 支持 Python 3.2 的列表。

lxml 在底层使用 libxml2/libxslt,因此结果应该是相同的。它使用 Cython 从相同的源代码生成 C 扩展,可在 Python 2.x 和 3.x 上工作,例如


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接