2011-12-10 13 views
0

私が見てきたように、私たちはPythonスクリプトでxml.dom.minidom.parseによって読み込まれたXMLを編集できますか?

from xml.dom.minidom import parse 
myXML = parse('anything.xml') 

を実行するときは、スクリプトまたははCtrl + DあなたのPythonのセッションを終了するまで、それは、「anything.xml」の内容をロードします。

PythonでロードされたこのXMLバージョンに属性値を追加することはできますか?

+0

import xml.dom.minidom d = xml.dom.minidom.parseString('<head>hello</head>') d.getElementsByTagName('head')[0].setAttribute('joe', '2') print d.toxml() 

これはheadタグにjoe="2"属性を追加します。これはキャッシングではなく、XMLがロードされているということです。そのオブジェクトを更新したいのですか、 'anything.xml'を修正したいですか? –

+0

元のxml(anything.xml)を変更したくありません。解析された(読み込まれた)XMLを変更したいです。 – nightrider84

+0

http://lxml.de/ –

答えて

3

parseメソッドは、xml.dom.minidom.Documentのインスタンスを返します。xml.domのドキュメントに記載されている多数のメソッドを呼び出すことができます。ここで小さな例です:あなたの質問は明確ではない

<?xml version="1.0" ?><head joe="2">hello</head> 
+0

それで、XMLファイルは変更されませんか?文字列ではなくファイルを解析するので、 – nightrider84

+0

@ nightrider84:この例では、ファイル/文字列を解析して作成された* document *オブジェクトを変更する方法を示します。このオブジェクトをファイルやその他のファイルに書き戻すことができます。書き込み側メソッドのドキュメントを参照してください。 –

+0

もう1つ質問があります。 [0] .setAttribute [0]は何を意味しますか? – nightrider84