2016-08-01 42 views
1

我有一個XML文件,我想編輯某些屬性。我能夠正確編輯屬性,但是當我將更改寫入文件時,標籤上添加了一個奇怪的「ns0」。我怎樣才能擺脫這一點?這是我所嘗試過的並且不成功的。我正在使用python和使用lxml。從XML中刪除ns0

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. import語句是進口xml.etree.ElementTree作爲ET
  2. ET.register_namespace(「」,命名空間)是正確的調用,其中的名稱空間是在輸入XML中列出的命名空間,即在URL後XMLNS。