fromstring我有壽下面的代碼片段:如何防止xml.ElementTree掉落commentnode
from xml.etree.ElementTree import fromstring,tostring
mathml = fromstring(input)
for elem in mathml.getiterator():
elem.tag = 'm:' + elem.tag
return tostring(mathml)
當我輸入以下input
:
<math>
<a> 1 2 3 </a> <b />
<foo>Uitleg</foo>
<!-- <bar> -->
</math>
它導致:
<m:math>
<m:a> 1 2 3 </m:a> <m:b />
<m:foo>Uitleg</m:foo>
</m:math>
怎麼回事?我怎樣才能保留評論?
編輯:我不關心使用的確切的XML庫,但是,我應該能夠對標籤進行粘貼更改。不幸的是,lxml似乎不允許這樣做(並且我不能使用正確的命名空間操作)
我不認爲這是可能的'xml.etree'的當前實現。註釋節點被解析器剝離開始。 – Santa 2011-03-23 17:43:23
但是,我應該能夠通過使用不同的解析器來解決它? (假設有一個不丟棄評論)。由於ElementTree的確有CommentNode的,你可以創建,所以我希望有某種支持。 – markijbema 2011-03-23 18:18:38
這是真的。 'xml.etree' *可以*創建一個Comment節點並將其序列化爲XML,但不幸的是,它的默認解析器不支持反轉。 – Santa 2011-03-23 23:48:44