使用xml.etree从xml读取特定标签的数据

zxcv

我试图从看起来像这样的xml数据中获取名称

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Major Version</key><integer>1</integer>
    <key>Minor Version</key><integer>1</integer>
    <dict>
        <key>369</key>
        <dict>
            <key>Track ID</key><integer>369</integer>
            <key>Name</key><string>Another One Bites The Dust</string>
            <key>Artist</key><string>Queen</string>
        </dict>
        <key>371</key>
        <dict>
            <key>Track ID</key><integer>371</integer>
            <key>Name</key><string>Asche Zu Asche</string>
            <key>Artist</key><string>Rammstein</string>
        </dict>

我正在尝试以下代码,该代码为我提供了<key>tag的文本值考虑到第一个标签的文本值为Name,我需要第二个标签的文本值因此,所需的输出是“另一个咬住灰尘”和“ Asche Zu Zuche”

    import xml.etree.ElementTree as ET
    stuff = ET.parse(fname)
    all = stuff.findall('dict/dict/dict')
    for item in all:
      for child in item :
        if child.tag == 'key' and child.text == 'Name':
           print(child.text)
杰克·弗莱汀

要使用ET进行操作,请尝试以下操作:

all = stuff.findall('dict/dict')
for item in all:
    children = item.findall('.//key')
    for child in children:
        if child.text=="Name":
            print(item.find('.//string').text)

最简单的方法是使用lxml而不是xml.etree,因为lxml具有更好的xpath支持。这样,它非常简单:

from lxml import etree
stuff = ET.parse(fname)
all = stuff.xpath('//dict/dict/key[.="Name"]/following-sibling::*[1]')
for a in all:
    print(a.text)

在这两种情况下,输出均为:

Another One Bites The Dust
Asche Zu Asche

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何读取XML中的特定标签?

来自分类Dev

如何使用c#读取XML文件中带有特定标签的所有数据?

来自分类Dev

从xml删除特定标签

来自分类Dev

从给定标签读取xml文件

来自分类Dev

如何使用Powershell从XML文件中删除特定标签?

来自分类Dev

使用python 2.7更新xml中的特定标签

来自分类Dev

解析XML文件中的特定标签

来自分类Dev

xml解析以检索特定标签

来自分类Dev

如何验证包含特定标签的XML

来自分类Dev

修改 xml 中特定标签的值

来自分类Dev

将XML解析为js数据,如何访问特定标签?

来自分类Dev

使用Etree从XML中删除特定元素

来自分类Dev

在XML文件中替换特定标签的值

来自分类Dev

如何从python中的xml文档中获取特定标签

来自分类Dev

C#-从XML文档中的特定标签获取价值

来自分类Dev

如何解析按特定标签ID分组的XML

来自分类Dev

如何从python中的xml文档中获取特定标签

来自分类Dev

盲目解析XML页面以获取特定标签

来自分类Dev

从XML文件(Java)中的特定标签解析内容

来自分类Dev

使用BeautifulSoup遍历XML以提取特定标签并存储在变量中

来自分类Dev

使用Python模块BeautifulSoup抓取XML,需要树中的特定标签

来自分类Dev

使用BeautifulSoup遍历XML以提取特定标签并存储在变量中

来自分类Dev

使用批处理文件从xml中的特定标签之间打印字符串

来自分类Dev

使用LINQ to XML从XML动态读取数据

来自分类Dev

通过标签读取特定的xml值

来自分类Dev

使用属性从XML读取数据

来自分类Dev

使用 SqlDataReader 读取 XML 数据

来自分类Dev

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

来自分类Dev

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

Related 相关文章

热门标签

归档