使用xml.etree.ElementTree XML解析子元素

伊兹

我试图按字母顺序返回所有英国艺术家-我还没有完全理解XML解析。我从调试和文档中收集到的信息是,当您使用findall()方法时,它返回一个无法进一步导航的列表,这是否正确?那么,在这种情况下<cd>如何遍历父节点的子元素来查找country =='UK'的所有元素?提前致谢!

def get_uk_artists(xmlstr):
      xml = ET.fromstring(xmlstr)
      artist_list = []
      for each in xml.findall('cd'):
          if each.findall('./cd/country').text == 'UK':
              artist_list.append(each.findall('artist').text)
      return artist_list.sort()

XML是:

 xml_doc ='''<?xml version="1.0" encoding="ISO-8859-1"?>
    <catalog>
        <cd>
            <title>Empire Burlesque</title>
            <artist sex="male">Bob Dylan</artist>
            <country>USA</country>
            <company>Columbia</company>
            <price>10.90</price>
            <year>1985</year>
        </cd>
        <cd>
            <title>Hide your heart</title>
            <artist sex="female">Bonnie Tyler</artist>
            <country>UK</country>
            <company>CBS Records</company>
            <price>9.90</price>
            <year>1988</year>
        </cd>
        <cd>
            <title>Greatest Hits</title>
            <artist sex="female">Dolly Parton</artist>
            <country>USA</country>
            <company>RCA</company>
            <price>9.90</price>
            <year>1982</year>
        </cd>
        <cd>
            <title>Still got the blues</title>
            <artist sex="male">Gary Moore</artist>
            <country>UK</country>
            <company>Virgin records</company>
            <price>10.20</price>
            <year>1990</year>
        </cd>
    </catalog>
    '''
格朗伯特

您可以使用:

import xml.etree.ElementTree as ET

xml = ET.fromstring(xml_doc)
artists = []
for cd in xml.findall('cd'):
    if cd.find('country').text == 'UK':
        artists.append(cd.find('artist').text)

artists.sort()
print(artists)

输出

['Bonnie Tyler', 'Gary Moore']

这将遍历cd文档中的每个文档。如果cd有一个country文本等于子元素'UK'中,cd艺术家的名字被附加到艺术家的名单。artists.sort()然后就地对列表进行排序。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python xml.etree.ElementTree追加到子元素

来自分类Dev

使用find方法(xml.etree.ElementTree)后获取父元素

来自分类Dev

IronPython和xml.etree.ElementTree非法字符错误

来自分类Dev

使用xml.etree.ElementTree(python)解析XML时,如何区分常规空格和转义空格(&#32;)

来自分类Dev

使用html5lib和xml.etree.ElementTree

来自分类Dev

xml.etree.ElementTree iterparse()仍在使用大量内存?

来自分类Dev

如何使用xml.etree.ElementTree访问标签之间的文本

来自分类Dev

xml.etree.ElementTree-麻烦设置xmlns ='...'

来自分类Dev

xml.etree.ElementTree getElementByID()?

来自分类Dev

使用xml.etree.ElementTree获取子节点的所有实例

来自分类Dev

使用xml.etree.ElementTree获取文件中的XML标签列表

来自分类Dev

从Python中的XML数据创建字典(使用xml.etree.ElementTree)

来自分类Dev

使用xml.etree.ElementTree解析XML时获取空列表作为属性

来自分类Dev

xml.etree.ElementTree findall

来自分类Dev

在Python中,如何使用xml.etree.ElementTree创建数据框?

来自分类Dev

python(xml.etree.ElementTree)中的XML解析

来自分类Dev

无法使用xml.etree.ElementTree解析html

来自分类Dev

xml.etree.ElementTree >> Python >>如何访问子元素并进行断言

来自分类Dev

使用Python模块xml.etree.ElementTree解析有点复杂的XML并将值存储在List中

来自分类Dev

使用ElementTree解析XML

来自分类Dev

如何使用xml.etree.ElementTree访问标签之间的文本

来自分类Dev

使用xml.etree.ElementTree搜索XML元素树的属性

来自分类Dev

使用xml.etree.ElementTree的Python xml解析不起作用

来自分类Dev

xml.etree.ElementTree findall

来自分类Dev

如何使用 xml.etree.ElementTree 在 xml 文件上添加子子项

来自分类Dev

如何使用 xml.etree.ElementTree 解析 XML 文件,其子项中有 HTML 内容

来自分类Dev

使用 xml.etree.ElementTree 获取节点的所有子节点

来自分类Dev

Python xml.etree.ElementTree 问题

来自分类Dev

使用 Python xml.etree.ElementTree 遍历 XML 树的问题

Related 相关文章

  1. 1

    python xml.etree.ElementTree追加到子元素

  2. 2

    使用find方法(xml.etree.ElementTree)后获取父元素

  3. 3

    IronPython和xml.etree.ElementTree非法字符错误

  4. 4

    使用xml.etree.ElementTree(python)解析XML时,如何区分常规空格和转义空格(&#32;)

  5. 5

    使用html5lib和xml.etree.ElementTree

  6. 6

    xml.etree.ElementTree iterparse()仍在使用大量内存?

  7. 7

    如何使用xml.etree.ElementTree访问标签之间的文本

  8. 8

    xml.etree.ElementTree-麻烦设置xmlns ='...'

  9. 9

    xml.etree.ElementTree getElementByID()?

  10. 10

    使用xml.etree.ElementTree获取子节点的所有实例

  11. 11

    使用xml.etree.ElementTree获取文件中的XML标签列表

  12. 12

    从Python中的XML数据创建字典(使用xml.etree.ElementTree)

  13. 13

    使用xml.etree.ElementTree解析XML时获取空列表作为属性

  14. 14

    xml.etree.ElementTree findall

  15. 15

    在Python中,如何使用xml.etree.ElementTree创建数据框?

  16. 16

    python(xml.etree.ElementTree)中的XML解析

  17. 17

    无法使用xml.etree.ElementTree解析html

  18. 18

    xml.etree.ElementTree >> Python >>如何访问子元素并进行断言

  19. 19

    使用Python模块xml.etree.ElementTree解析有点复杂的XML并将值存储在List中

  20. 20

    使用ElementTree解析XML

  21. 21

    如何使用xml.etree.ElementTree访问标签之间的文本

  22. 22

    使用xml.etree.ElementTree搜索XML元素树的属性

  23. 23

    使用xml.etree.ElementTree的Python xml解析不起作用

  24. 24

    xml.etree.ElementTree findall

  25. 25

    如何使用 xml.etree.ElementTree 在 xml 文件上添加子子项

  26. 26

    如何使用 xml.etree.ElementTree 解析 XML 文件,其子项中有 HTML 内容

  27. 27

    使用 xml.etree.ElementTree 获取节点的所有子节点

  28. 28

    Python xml.etree.ElementTree 问题

  29. 29

    使用 Python xml.etree.ElementTree 遍历 XML 树的问题

热门标签

归档