Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.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从xml检索src属性?_Python_Python 3.x_Python 2.7_Python Xmlschema - Fatal编程技术网

如何使用python从xml检索src属性?

如何使用python从xml检索src属性?,python,python-3.x,python-2.7,python-xmlschema,Python,Python 3.x,Python 2.7,Python Xmlschema,您好,我正在使用一个小型python程序从xml中搜索所有标记。在访问标记之后,我想访问所有src属性。如何在python中实现这一点。下面是我的xml定义 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <smil systemRequired="pss6" xmlns="http://www.w3.org/2001

您好,我正在使用一个小型python程序从xml中搜索所有标记。在访问标记之后,我想访问所有src属性。如何在python中实现这一点。下面是我的xml定义

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<smil systemRequired="pss6"
    xmlns="http://www.w3.org/2001/SMIL20/Language"
    xmlns:pss6="http://www.3gpp.org/SMIL20/PSS6/">
    <head>
        <meta id="meta-smil1.0-a" name="Publisher" content="OMA"/>
        <layout>
            <root-layout width="100%" height="100%"/>
            <region id="UP" top="0%" left="0%" height="50%" width="100%" fit="meet" backgroundColor="white"/>
            <region id="DOWN" top="50%" left="0%" height="50%" width="100%" fit="meet" backgroundColor="white"/>
            <region id="FULL" top="0%" left="0%" height="100%" width="100%" fit="meet" backgroundColor="white"/>
        </layout>
    </head>
    <body>
        <par index="0" dur="10" size="3326">
            <img src="f5d226a7-487f-4038-8051-d9382acde16f" region="DOWN" fill="freeze" size="3310"/>
            <text src="tess" region="UP" size="16"/>
        </par>
        <par index="1" dur="10" size="19534">
            <img src="7556e55d-52c7-4807-9034-d6abee06ce67" region="DOWN" fill="freeze" size="2796"/>
            <text src="bigno" region="UP" size="20"/>
            <audio src="84620751-25db-4db9-b361-43a3dfd70f21" size="16718"/>
        </par>
    </body>
</smil>
我想要的是检索所有img标记,然后检索src属性并将属性值存储在列表中

所以我期望的输出是一个列表=[f5d226a7-487f-4038-8051-d9382acde16f,7556e55d-52c7-4807-9034-d6abee06ce67],因为在xml中我们有两个标记

我怎样才能做到呢? 谢谢

您必须在路径中指定元素的位置

def parse():
tree=ET.parse('smil.xml')
root=tree.getroot()
ns={“x”:”http://www.w3.org/2001/SMIL20/Language"}
对于root.findall('.//x:img',namespaces=ns)中的img:
打印(img.attrib['src'])
但是,如果您熟悉XPath,我建议您研究如何解析XML和HTML。

您必须指定路径中元素的位置

def parse():
tree=ET.parse('smil.xml')
root=tree.getroot()
ns={“x”:”http://www.w3.org/2001/SMIL20/Language"}
对于root.findall('.//x:img',namespaces=ns)中的img:
打印(img.attrib['src'])
但是,如果您熟悉XPath,我建议您研究如何解析XML和HTML

import xml.etree.ElementTree as ET

def parse():
    tree = ET.parse('smil.xml')
    root = tree.getroot()
    for img in root.findall('./body/par/img'):
        print(img)

if __name__ == '__main__':
    parse()