2013-11-10 3 views
0

У меня есть документ XML с <en-media> тегом:Замена XML-теги в Python

<en-media type="image/png" hash="06c5ec15535babbcd3eef471f51af870"/> 

Я пытаюсь изменить этот тег в HTML <img> так будет выглядеть следующим образом:

<img src="06c5ec15535babbcd3eef471f51af870"/> 

Это работает, поскольку файл назван в честь его хэша.

Я использую xml.etree.ElementTree, чтобы попытаться это сделать, и я смотрел на http://docs.python.org/2/library/xml.etree.elementtree.html, но я не могу найти что-нибудь рядом с работой.

Может ли кто-нибудь помочь мне с этим?

Благодаря

+1

Пожалуйста, покажите, что вы пробовали. –

+0

Вопросы, требующие кода, должны демонстрировать минимальное понимание проблемы, которую нужно решить. Включите попытки решения, почему они не работают и ожидаемые результаты. См. Также: Контрольный список вопросов переполнения стека – Marcin

ответ

0

Вы можете использовать BeautifulSoup.

, например:

from bs4 import BeautifulSoup 
a = BeautifulSoup("<somelink rel='stylesheet'>") 
print a 
# output : <html><body><somelink rel="stylesheet"></somelink></body></html> 
b = a.somelink 
b.name = "link" 
print a 
# output : <html><body><link rel="stylesheet"></link></body></html> 
print b 
# output : <link rel="stylesheet"></link> 
1

Вот как это можно сделать с помощью ElementTree.

Входной XML (test.xml):

<root> 
    <en-media type="image/png" hash="06c5ec15535babbcd3eef471f51af870"/> 
</root> 

код Python:

from xml.etree import ElementTree as ET 

root = ET.parse("test.xml").getroot() 

# Get the 'en_media' element 
en_media = root.find("en-media") 

# Add the 'img' element (with 'src' attribute) as a sub-element of 'root' 
img = ET.SubElement(root, "img", src=en_media.get("hash")) 

# Remove 'en_media' 
root.remove(en_media) 

print ET.tostring(root) 

Выход:

<root> 
    <img src="06c5ec15535babbcd3eef471f51af870" /></root> 
Смежные вопросы