我在使用lxml的find()方法在xml文件中選擇節點時遇到問題。本質上,我試圖將一個節點從一個XML文件移動到另一個。python lxml添加未使用的名稱空間
文件1:
<somexml xmlns:a='...' xmlns:b='...' xmlns:c='...'>
<somenode id='foo'>
<something>bar</something>
</somenode>
</somexml>
一旦我解析文件1,做一個在它身上找到:
node = tree.find('//*[@id="foo"]')
節點看起來是這樣的:
<somenode xmlns:a='...' xmlns:b='...' xmlns:c='...'>
<something>bar</something>
</somenode>
注意到它增加了命名空間在該文檔中找到的那個節點。但是,該節點中沒有使用任何這些名稱空間。我將如何處理:A)不編寫未在選定節點中使用的名稱空間,或者B)刪除未使用的名稱空間聲明?如果它在選定節點中使用,那麼我將需要它,但除此之外,我想擺脫它們。有任何想法嗎?謝謝!
[從lxml.objectify.ObjectifiedElement剝離python命名空間屬性]的可能重複(http://stackoverflow.com/questions/6141464/stripping-python-namespace-attributes-from-an-lxml-objectify-objectifiedelement) – Daenyth 2011-06-15 23:19:54