2013-06-03 4 views
0

Я новичок в python и пытаюсь что-то сделать, и до сих пор не был сумасшедшим. Я пытаюсь открыть xml, удалить целые теги и их содержимое, а также переместить другие теги в xml.Python удаляет xml-теги и перемещает теги xml

Вот мой оригинальный импорт XML:

<?xml version="1.0" encoding="UTF-8"?> 
<package> 
    <language>en-GB</language> 
    <video> 
     <original_spoken_locale>en-US</original_spoken_locale> 
     <copyright_cline>2012 copyright</copyright_cline> 
     <release_date>2012-04-23</release_date> 
     <title>Amazing Film</title> 
    </video> 
    <provider>testprovider</provider> 
</package> 

Мне нужно удалить <copyright_cline> тег и <title> тег. Затем мне нужно переместить тег <provider> в тег <video> и поместить его между <original_spoken_locale> и тегами <release_date>.

Вот в результате экспорта XML:

<?xml version="1.0" encoding="UTF-8"?> 
<package> 
    <language>en-GB</language> 
    <video> 
     <original_spoken_locale>en-US</original_spoken_locale> 
     <provider>testprovider</provider> 
     <release_date>2012-04-23</release_date> 
    </video> 
</package> 

Я пробовал различные решения, ничего я полностью получил работу. Мне понравился модуль xml.etree, я также попытался установить lxml, но не смог его установить, поэтому хотел бы использовать модуль, который не нуждается в установке. Я использую python 3.3.2.

Хотя этот сайт является удивительным источником информации, моих знаний недостаточно, чтобы получить ручку на нем. То, что действительно поможет, - это пример рабочего кода, который я могу затем изучить и, надеюсь, понять. Большое спасибо.

+0

У меня теперь есть lxml, поэтому я бы оценил некоторые примеры. – speedyrazor

ответ

0

Использование bs4.BeautifulSoup:

from bs4 import BeautifulSoup 
xml = """<?xml version="1.0" encoding="UTF-8"?> 
<package> 
    <language>en-GB</language> 
    <video> 
     <original_spoken_locale>en-US</original_spoken_locale> 
     <copyright_cline>2012 copyright</copyright_cline> 
     <release_date>2012-04-23</release_date> 
     <title>Amazing Film</title> 
    </video> 
    <provider>testprovider</provider> 
</package>""" 
soup = BeautifulSoup(xml, 'xml') 
soup.copyright_cline.replace_with(soup.provider) 
soup.title.extract() 
print soup 

Печать:

<?xml version="1.0" encoding="utf-8"?> 
<package> 
<language>en-GB</language> 
<video> 
<original_spoken_locale>en-US</original_spoken_locale> 
<provider>testprovider</provider> 
<release_date>2012-04-23</release_date> 

</video> 

</package> 

Я не понимаю, почему вы не смогли установить lxml модуль, но установить BeautifulSoup просто сделать простой pip install bs4 или download it manually

+0

Привет, спасибо за ваше предложение. Я обязательно попробую. Существуют ли какие-либо решения с использованием xml.etree, поэтому мне не нужно устанавливать какие-либо другие модули, так как Mac, который мне нужен для запуска, имеет ограниченную установку. с уважением. – speedyrazor

+0

ОК, я думаю, мне удалось установить lxml. Каким будет решение lxml, пожалуйста? – speedyrazor

+0

OK, lxml все установлено и работает. кто-то будет очень добрым и представит пример кода lxml, пожалуйста? – speedyrazor

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