使用重复标签读取XML

时间:2019-07-02 15:18:27

标签: python

<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
  <book category="cooking">
    <title lang="en">Everyday Italian</title>
    <author>Giada De Laurentiis</author>
    <year>2005</year>
    <price>30.00</price>
  </book>
  <book category="children">
    <title lang="en">Harry Potter</title>
    <author>J K. Rowling</author>
    <year>2005</year>
    <price>29.99</price>
  </book>
  <book category="web">
    <title lang="en">XQuery Kick Start</title>
    <author>James McGovern</author>
    <author>Per Bothner</author>
    <author>Kurt Cagle</author>
    <author>James Linn</author>
    <author>Vaidyanathan Nagarajan</author>
    <year>2003</year>
    <price>49.99</price>
  </book>
  <book category="web">
    <title lang="en">Learning XML</title>
    <author>Erik T. Ray</author>
    <year>2003</year>
    <price>39.95</price>
  </book>
</bookstore>

在上述示例XML中,在“网络”类别中,有多个针对“作者”的重复标签。当我尝试通过下面的代码进行阅读时,仅提取第一作者,但我想获得全部4。如何这样做?

for book in root.findall('book'):
    title = book.find('title').text
    author = book.find('author')
    year = book.find('year').text
    price = book.find('price').text
    # print(title,author,year,price)

1 个答案:

答案 0 :(得分:1)

您可以使用"%d\n"方法来获取作者的完整列表,并遍历作者并从中创建一个字符串。

findall