擅长:python、mysql、java
<p>使用<a href="http://docs.python.org/library/xml.etree.elementtree.html" rel="nofollow">^{<cd1>}</a>(类似于@diegonavro在他的答案中使用的lxml,除了etree是标准库的一部分,并且没有XPATH等),您可以尝试以下操作:</p>
<pre><code>import xml.etree.ElementTree as etree
xml_string = """<TextWithNodes>
<Node id="0"/>TEXT1<Node id="19"/>TEXT2 <Node id="20"/>TEXT3<Node id="212"/>
</TextWithNodes>
"""
xml_etree = etree.fromstring(xml_string)
text = [element.tail for element in xml_etree]
# `text` will be ['TEXT1', 'TEXT2 ', 'TEXT3', '\n']
</code></pre>
<p>注意,这假设XML <code><Node id="0"/>TEXT1</code>。。。是正确的。因为文本跟在结束标记之后,所以它成为标记的尾部文本。它不是元素nodeValue,这就是为什么在问题中的代码中得到<code>None</code>s</p>
<p>如果您想解析像<code><Node id="0">TEXT1</Node></code>这样的XML,您必须将<code>[element.tail for element in xml_etree]</code>替换为<code>[element.text for element in xml_etree]</code>。在</p>