使用ElementTree获取XML标记值

时间:2017-10-24 09:44:08

标签: python xml

对于以下XML文件,我试图获取所有图书标题并将其附加到列表中。

XML文件 -

<?xml version="1.0" encoding="UTF-8"?>
<Text>
 <Library>
    <Book>
            <Title>XYZ</Title>
     </Book>
     <Book>
            <Title>ABC</Title>
     </Book>
 </Library>
</Text>

我使用ElementTree使用此代码提取标记值 -

for child in root.iter('Text'):
  t1=(child.find('Library/Book/Title').text)
  t2=(child.find('Library/Book/Title').text)
  print (t1,t2)

我无法获得第二个标记值。是否可以在一个查找中获取这两个值并将其附加到列表中?

1 个答案:

答案 0 :(得分:1)

您可以使用findall而不是find

在列表中获取这两个值

更新了代码以使其符合评论:

library = []
for text in root.findall('Library'):
    titles = [title.text for title in text.findall('Book/Title')]
    library.append(titles)

这将为每个库创建一个数组,并将每个书名添加到该数组中 结果:

>>>print(library)
[['XYZ','ABC'],['LMN','PQR']]

here是文档