如何在python中从类似类型的XML标记中获取特定的标记文本



我有以下标签作为-

<PREAMHD>
<HD SOURCE="HED">Applicants:</HD>
<P>Fortune V Separate Account</P>
</PREAMHD>
<PREAMHD>
<HD SOURCE="HED">FILING DATES:</HD>
<P>The application was filed on September 20, 2021</P>
</PREAMHD>

我试过了,但得到了每个preamHD标签的p标签的所有文本-

if pre.findall("./PREAMHD"):
DATES=''
for dates in pre.findall("./PREAMHD/HD"):
checking_date = dates.text
print(checking_date)
if 'DATES' in checking_date:
print('filing')
for dates_phd in pre.findall("./PREAMHD/P"):
print(dates_phd.text)
for para1 in dates_phd.itertext():
DATES += para1.replace('DATES:', '').replace('n',' ')
DATES = ' '.join(DATES.split())
print(DATES)
message_body += 'Dated:' + str(DATES)

我如何才能只获得申请日期p标签文本?如有任何帮助,我们将不胜感激。

您可以使用XPath表达式,尤其是[tag='text']语法。

选择具有子命名标记的所有元素,该标记的完整文本内容(包括子体(等于给定文本。

>>> pre.findall('./PREAMHD[HD="FILING DATES:"]/P')
[<Element 'P' at 0x11c239540>]
>>> for p in pre.findall('./PREAMHD[HD="FILING DATES:"]/P'):
...     p.text
'The application was filed on September 20, 2021'

最新更新