0

key=value ペアを含むテキスト ファイルがあります。「キー」を「ソース」ノードとして、「値」を「宛先ノード」として含む別の XML ファイルがあります。

<message>
   <Source>key</Source>
   <Destination>value</Destination>
</message>

同じキーで異なる値を含む新しいテキスト ファイルを取得したとします。minidom を使用して XML ファイルを変更するにはどうすればよいでしょうか。

これは可能ですか?

4

1 に答える 1

2

その場で変更するよりも、XML ファイルを再生成する方が簡単です。

from xml.dom.minidom import Document

doc = Document( )
root = doc.createElement( "root" )

for key, value in <some iterator>:
    message = doc.createElement( "message" )

    source = doc.createElement( "Source" )
    source.appendChild( doc.createTextNode( key ) )

    dest = doc.createElement( "Destination" )
    dest.appendChild( doc.createTextNode( value ) )

    message.appendChild( source )
    message.appendChild( dest )
    root.appendChild( message )

doc.appendChild( root )

print( doc.toprettyxml( ) )

これは印刷されます:

<root>
    <message>
        <Source>
            key
        </Source>
        <Destination>
            value
        </Destination>
    </message>
</root>

たとえばconfigparser、ファイルを読み取るために使用できます。もっと良い方法があるかもしれません。

于 2010-08-23T11:39:36.587 に答える