Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > непонятное поведние XML


Автор: optix 15.11.2007, 12:53
Хочу скопировать определеные элементы xml из  (в примере для упрощения копирую все выложенные в корневой)

Код

doc1 = minidom.parseString( """<?xml version="1.0" encoding="utf-8"?>
        <ROOT>
        <AAA value="1" />
        <BBB value="2" />
        <CCC value="3" />
        </ROOT>""")

doc2 = minidom.Document()
root = doc2.createElement( "ROOT" )
doc2.appendChild( root )

for node in doc1.documentElement.childNodes:
    if node.nodeType == node.ELEMENT_NODE:
        root.appendChild( node )

print "doc1:\n", doc1.toxml()
print "doc2:\n", doc2.toprettyxml()


В результате получается вот что:
Цитата

doc1:
<?xml version="1.0" ?>
<ROOT>
        
        
        
        </ROOT>
doc2:
<?xml version="1.0" ?>
<ROOT>
    <AAA value="1"/>
    <BBB value="2"/>
    <CCC value="3"/>
</ROOT>


т.е. элементы не скопировались в вырезались. Поему так происходится? Как исправить?

Автор: optix 15.11.2007, 13:53
все решил траблу
Цитата

for node in doc1.documentElement.childNodes:
    if node.nodeType == node.ELEMENT_NODE:
        root.appendChild( node.cloneNode( None ) )

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)