我需要修改現有的xml文件。實際的文件看起來是這樣的:修改現有的xml文件
<person id="1">
<address>Fr.</address>
<titles/>
<firstname>Mary</firstname>
<lastname>Müller</lastname>
<gender>F</gender>
<profession/>
<references>
<reference>
<positions>
<position>68-590-1</position>
<position>68-590-2</position>
</positions>
<positions>
<position>68-590-6</position>
<position>68-590-7</position>
</positions>
</reference>
</references>
</person>
我的問題是:我怎麼能在這樣的文件讀取,然後添加信息。舉例來說,如果這個人有行業「教授」,(這是在12-122-3位置寫的),修改後的XML應該是這樣的:
<person id="1">
<address>Fr.</address>
<titles/>
<firstname>Mary</firstname>
<lastname>Müller</lastname>
<gender>F</gender>
<profession>professor</profession>
<references>
<reference>
<positions>
<position>12-122-3</position>
</positions>
<positions>
<position>68-590-1</position>
<position>68-590-2</position>
</positions>
<positions>
<position>68-590-6</position>
<position>68-590-7</position>
</positions>
</reference>
</references>
</person>
感謝任何幫助! :)
什麼我迄今所做的:
from xml.dom import minidom
doc = minidom.parse('SAC-Jahrbuch_1895_mul-ner.xml')
person = doc.getElementsByTagName('person')
lastnames = doc.getElementsByTagName('lastname')
positions = doc.getElementsByTagName('position')
professions = doc.getElementsByTagName('profession')
for ln in lastnames:
for pos in positions:
if ln.firstChild.nodeValue == u"Müller" and pos.firstChild.nodeValue == "68-590-2":
print "right person"
現在,我怎麼能檢查的人已經一個職業?如果不是的話:我該如何添加專業和職位? 非常感謝!
你有什麼迄今所做?您是否嘗試在Python教程中遵循至少一個XML? –
我用minidom試了一下。但它沒有奏效。我會再試一次...... – MarkF6
從長遠來看,您可能會想要使用['lxml'](http://lxml.de/)。你可以按照教程[這裏](http://lxml.de/tutorial.html)。 – Midnighter