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 还是它有不同的调用模式(需要重写代码)?

4

1 回答 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 的支持

lxmllibxml2/libxslt在引擎盖下使用,因此结果应该相同。它使用 Cython 生成 C 扩展,这些扩展在 Python 2.x 和 3.x 上都可以使用,来自同一来源,例如.

于 2012-01-23T14:44:56.003 回答