擅长:python、mysql、java
<p>为了简化这个问题,我使用了一个“Node”助手类来返回dict:</p>
<pre><code>class Node():
@staticmethod
def childTexts(node):
texts={}
for child in list(node):
texts[child.tag]=child.text
return texts
</code></pre>
<p><strong>示例用法:</strong></p>
<pre><code>xml = """<pages>
<page>
<title>title1</title>
<subtitle>subtitle</subtitle>
<ns>0</ns>
<id>1</id>
<text>hello world!@</text>
</page>
<page>
<title>title2</title>
<ns>0</ns>
<id>1</id>
<text>hello world</text>
</page>
</pages>
"""
root = etree.fromstring(xml)
for node in root.xpath('//page'):
texts=Node.childTexts(node)
print (texts)
</code></pre>
<p><strong>结果:</strong></p>
<pre><code>{'title': 'title1', 'subtitle': 'subtitle', 'ns': '0', 'id': '1', 'text': 'hello world!@'}
{'title': 'title2', 'ns': '0', 'id': '1', 'text': 'hello world'}
</code></pre>