2016-08-01 2 views
1

У меня есть файл XML, где я хотел бы отредактировать определенные атрибуты. Я могу правильно редактировать атрибуты, но когда я записываю изменения в файл, теги имеют странный «ns0», добавленный к ним. Как я могу избавиться от этого? Это то, что я пробовал и не увенчался успехом. Я работаю на python и использую lxml.Удалить ns0 из XML

import xml.etree.ElementTree as ET 
    from xml.etree import ElementTree as etree 
    from lxml import etree, objectify 
    frag_xml_tree = ET.parse(xml_name) 
    frag_root = frag_xml_tree.getroot() 

    for e in frag_root: 
     for elem in frag_root.iter(e): 
      elem.attrib[frag_param_name] = update_val 
     etree.register_namespace("", "http://www.w3.org/2001") 
     frag_xml_tree.write(xml_name) 

Однако, когда я это делаю, я получаю сообщение об ошибке «Недопустимое имя тега u». Я думал, что эта ошибка возникла, если теги xml начинались с цифр, но это не так с моим xml. Я действительно зациклился на том, как действовать дальше. Спасибо

+0

Какая библиотека XML вы используете? – LegionMammal978

+0

На каком языке вы используете? – choroba

+0

Я обновил сообщение, чтобы включить информацию. благодаря! – user4500293

ответ

2

На самом деле способ сделать это представлял собой комбинацию двух вещей.

  1. Импорт заявление импорт xml.etree.ElementTree, как ET
  2. ET.register_namespace ("", NAMESPACE) правильный вызов, где NAMESPACE пространства имен в списке во входном XML, то есть URL после XMLNS.