Python3和xml / xslt库

时间:2012-01-23 11:53:06

标签: python-3.x libxml2 libxslt

在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的直接等价物还是有不同的调用模式(需要重写代码)?

2 个答案:

答案 0 :(得分:3)

使用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的支持

答案 1 :(得分:1)

由于这些库只是围绕C库的包装器,因此它们不应该很难移植到Python 3。

唯一的另一种选择是lxml,它有一个ElementTree类型的接口,因此它的级别更高,更“pythonic”。我不认为它提供了与库的直接接口。