python XML在<p> ... </p>标记内获取文本

时间:2016-10-10 03:14:12

标签: python xml

我们,我有一个xml结构,看起来有点像这样。

<abstract>
  <p id = "p-0001" num = "0000">
     blah blah blah
  </p>
</abstract>

我想仅在<p>标记中提取<abstract>标记。

我试过了:

import xml.etree.ElementTree as ET

xroot = ET.parse('100/A/US07640598-20100105.XML').getroot()

for row in xroot.iter('p'):
     print row.text

这会获取我的xml中的所有<p>标记,这不是一个好主意。

无论如何,我可以提取

中的文字

我的欲望输出将提取&#34;等等等等等等等。

1 个答案:

答案 0 :(得分:2)

您可以使用 XPath表达式p内专门搜索abstract元素:

for p in xroot.xpath(".//abstract//p"):
    print(p.text.strip())

或者,如果使用iter(),您可能会有一个嵌套循环:

for abstract in xroot.iter('abstract'):
    for p in abstract.iter('p'):
        print(p.text.strip())