擅长:python、mysql、java
<p>那不是<code>BookTitle</code>节点的<code>text</code>,而是<code>Emphasis</code>节点的<code>tail</code>。所以你应该这样做:</p>
<pre><code>def parse(el):
text = el.text.strip() + ' ' if el.text.strip() else ''
for child in el.getchildren():
text += '{0} {1}\n'.format(child.text.strip(), child.tail.strip())
return text
</code></pre>
<p>这给了你:</p>
<pre><code>>>> root = et.fromstring('''
<BookTitle>
<Emphasis Type="Italic">Z</Emphasis>
= 63 - 100
</BookTitle>''')
>>> print parse(root)
Z = 63 - 100
</code></pre>
<p>以及:</p>
<pre><code>>>> root = et.fromstring('''
<BookTitle>
Mtn
<Emphasis Type="Italic">Z</Emphasis>
= 74 - 210
</BookTitle>''')
>>> print parse(root)
Mtn Z = 74 - 210
</code></pre>
<p>这应该给你一个基本的想法怎么做。你知道吗</p>
<p><strong>更新:</strong>修复了空格。。。你知道吗</p>