Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-使用ElementTree解析带有重复标记的XML_Python_Xml_Parsing_Xml Parsing_Elementtree - Fatal编程技术网

Python-使用ElementTree解析带有重复标记的XML

Python-使用ElementTree解析带有重复标记的XML,python,xml,parsing,xml-parsing,elementtree,Python,Xml,Parsing,Xml Parsing,Elementtree,我有以下XML内容: <plist version="1.0"> <dict> <key>Version</key><integer>1</integer> <key>Sub Version</key><integer>2</integer> <dict> <key>1</key> &l

我有以下XML内容:

<plist version="1.0">
<dict>
    <key>Version</key><integer>1</integer>
    <key>Sub Version</key><integer>2</integer>
    <dict>
        <key>1</key>
        <dict>
            <key>ID</key><integer>1</integer>
            <key>Name</key><string>Frank</string>
        </dict>
        <key>2</key>
        <dict>
            <key>ID</key><integer>2</integer>
            <key>Name</key><string>Richard</string>
        </dict>
        <key>3</key>
        <dict>
            <key>ID</key><integer>3</integer>
            <key>Name</key><string>Sophia</string>
        </dict>
    </dict>
    <key>Persons</key>
    <array>
        <dict>
            <key>Name</key><string>Persons</string>
            <key>Description</key><string>empty</string>
        </dict>
    </array>
</dict>
</plist>
我想要的输出:

Frank
Richard
Sophia

有人知道如何使用这些标签访问这些值吗?

改用lxml:

from lxml import etree
plist = """your xml above"""

doc = etree.fromstring(plist)
doc.xpath('//dict/dict/key["name"]/following-sibling::string/text()')
输出:

['Frank', 'Richard', 'Sophia']

请编辑您的问题,以包括迄今为止的Python代码以及预期的输出。谢谢如果在Mac上,请查看感谢您的帮助!关于信息,我注意到它也可以(更好?)使用键[text()=“Name”]而不是键[“Name”],后者在做了一些修改后似乎并没有真正考虑“Name”值tests@Reedy是的,xpath的魔力:
key[text()=“Name”]
key[“Name”]
key[.=“Name”]
是等价的,所有这些都可以工作。。。
['Frank', 'Richard', 'Sophia']