<p>为了便于在python中操作XML,我喜欢<a href="http://www.crummy.com/software/BeautifulSoup/" rel="nofollow noreferrer">Beautiful Soup</a>库。它的工作原理如下:</p>
<p>示例XML文件:</p>
<pre><code><root>
<level1>leaf1</level1>
<level2>leaf2</level2>
</root>
</code></pre>
<p>Python代码:</p>
<pre><code>from BeautifulSoup import BeautifulStoneSoup, Tag, NavigableString
soup = BeautifulStoneSoup('config-template.xml') # get the parser for the xml file
soup.contents[0].name
# u'root'
</code></pre>
<p>可以将节点名称用作方法:</p>
<pre><code>soup.root.contents[0].name
# u'level1'
</code></pre>
<p>也可以使用正则表达式:</p>
<pre><code>import re
tags_starting_with_level = soup.findAll(re.compile('^level'))
for tag in tags_starting_with_level: print tag.name
# level1
# level2
</code></pre>
<p>添加和插入新节点非常简单:</p>
<pre><code># build and insert a new level with a new leaf
level3 = Tag(soup, 'level3')
level3.insert(0, NavigableString('leaf3')
soup.root.insert(2, level3)
print soup.prettify()
# <root>
# <level1>
# leaf1
# </level1>
# <level2>
# leaf2
# </level2>
# <level3>
# leaf3
# </level3>
# </root>
</code></pre>