У меня есть функция, которая принимает аргумент, называемый label. Затем эта метка используется для замены содержимого элемента «назначенNode» с помощью ElementTree.Unescape «& amp» при редактировании XML HTML
Функция пропускает все файлы xml в каталоге и записывает аргумент «label» в содержимое элемента.
Мой аргумент «label» содержит символ «&», но когда ET записывает его в xml-файл, он отображается как «& amp».
Может кто-нибудь проинструктировать меня, как отменить этот символ и заставить его написать символ «&»?
вот мой код:
def apply_label(label):
clone_path = os.getcwd()
for root, dirs, files in os.walk(clone_path):
for f in files:
try:
tree = ET.ElementTree(file=f)
root = tree.getroot()
for assignedNode in root.iter("assignedNode"):
assignedNode.text = label
tree = ET.ElementTree(root)
with open(f, "w") as a:
tree.write(a)
except :
pass
Возможный дубликат [Декодировать HTML-объекты в строке Python?] (Http://stackoverflow.com/questions/2087370/decode-html-entities-in-python-string) –
@AkhilThayyil No- это не дубликат. Многие из сообщений о переполнении стека показывают, как вытащить текст уже в XML и вернуть его неэкранированную версию. Я хочу вывести текст в XML, который не запускается с самого начала. Или, по крайней мере, отредактируйте содержимое элемента, чтобы отобразить неэкранированные символы в XML-файле. – Thomas
& является символом escape в xml, по этой причине парсер ElementTree преобразует его в & amp noation –