2016-06-21 3 views
0

Вот мой код:Создать XML-файл с помощью python?

import xml.etree.ElementTree as ET 

root = ET.Element("rss", version="2.0", xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/", xmlns:content="http://purl.org/rss/1.0/modules/content/", xmlns:wfw="http://wellformedweb.org/CommentAPI/", xmlns:dc="http://purl.org/dc/elements/1.1/", xmlns:wp="http://wordpress.org/export/1.2/") 

ET.dump(root) 

Это XML-файл я пытаюсь создать:

<rss version="2.0" 
    xmlns:excerpt="http://wordpress.org/export/1.2/excerpt/" 
    xmlns:content="http://purl.org/rss/1.0/modules/content/" 
    xmlns:wfw="http://wellformedweb.org/CommentAPI/" 
    xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:wp="http://wordpress.org/export/1.2/" 
> 

это очень основная часть фактического файла XML, но я не смог правильно создать его с ElementTree , До номера версии он работает правильно, но когда я добавляю «xmlns: something», он не работает. Я очень новичок в xml, поэтому я понятия не имею, что даже Google не может помочь мне понять.

ПРИМЕЧАНИЕ: Пожалуйста, скажите мне, является ли lxml более простым или это ElementTree. Потому что раньше я использовал lxml для элементов xpath и css.

+1

Я не думаю, что 'XMLNS: excerpt' является допустимым идентификатором питона. Используйте 'ET: element (" rss ", attrib = {" xmlns: excerpt ":" http: // ... ", ...})' – syntonym

+0

спасибо, что это помогло. :) –

ответ

1

Идентификаторы Python не имеют внутренних колоний. ElementTree позволяет передать словарь атрибутов с помощью ключа attrib:

ET.element("rss", attrib={"xmlns:excerpt":"http..."}

+0

У меня возникает еще одна проблема: всякий раз, когда я устанавливаю «ET.SubElement (wp_author,« wp: author_last_name »). Text =" "" это возвращает мне это: закодированный результат: " <! [ CDATA []] > " –

+0

Как декодировать эти символы перед созданием xml-файла. –

+0

Если я обязал вас правильно, вы хотите вставить CDATA в свой xml. [Здесь] (http://stackoverflow.com/questions/174890/how-to-output-cdata-using-elementtree) - это один вопрос (с ответами), но есть и другие. Если они не работают для вас, лучше всего, если вы создадите новый вопрос здесь, в SO. – syntonym

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