2013-06-21 5 views
2

У меня есть данные, которые поставляются в виде XML-файла. Мне также предоставлен XSLT для преобразования XML в HTML. Я могу использовать lxml для выполнения преобразования, однако, я хочу изменить некоторые теги HTML после преобразования. Как преобразовать этот новый etree в HtmlElements, чтобы я мог специфически использовать определенные методы, такие как .cssselect() и так далее.lxml: Преобразование XML в HTML через XSLT и получение HtmlElements

+2

не проще изменить код XSLT? – akonsu

+0

Нет. Я хочу получить имена файлов из вновь созданных тегов , чтобы я мог Base64encode их в новый html-файл. Вроде того. – OozeMeister

+0

Привет, не могли бы вы послать мне код, который вы используете для преобразования xml и xslt в html? Я не могу найти что-нибудь в сети. – Christopher

ответ

0
>>> import lxml.etree 
>>> import lxml.html 
>>> 
>>> xmlstring = '''\ 
... <?xml version='1.0' encoding='ASCII'?> 
... <root><a class="here">link1</a><a class="there">link2</a></root> 
... ''' 
>>> root = lxml.etree.fromstring(xmlstring) 
>>> root.cssselect('a.here') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
AttributeError: 'lxml.etree._Element' object has no attribute 'cssselect' 

lxml.etree.tostring(root) ->lxml.html.fromstring(..)

>>> root = lxml.html.fromstring(lxml.etree.tostring(root)) 
>>> root.cssselect('a.here') 
[<Element a at 0x2989308>] 

Получить вывод XML:

>>> print lxml.etree.tostring(root, xml_declaration=True) 
<?xml version='1.0' encoding='ASCII'?> 
<root><a class="here">link1</a><a class="there">link2</a></root> 
+0

Пожалуйста, посмотрите http://stackoverflow.com/questions/30662205/get-html-report- из-JetBrains-командная строка-инструмент-анализ –

Смежные вопросы