Библиотеки Python3 и xml / xslt - PullRequest
6 голосов
/ 23 января 2012

В 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 ]

3 голосов
/ 23 января 2012

Аналог вашего кода с использованием 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 голос
/ 23 января 2012

Поскольку эти библиотеки являются просто обертками для C-библиотек, их не должно быть очень сложно портировать на Python 3.

Единственная другая альтернатива - это lxml, который имеет интерфейс типа ElementTree, поэтому он вышеуровень и более "питонический".Я не думаю, что это обеспечивает прямой интерфейс с библиотеками.

...