读取xml文件.findall()“轨迹”

时间:2018-06-27 14:47:58

标签: xml python-2.7

我试图在xml文件中获取值。

这是我的xml文件的一个示例:

<trajectories uid="171126T104028_0_0000314183_34" max_width_for_not_hidden="999.00">
    <images>
        <image shoot_id="1" key_dtn_trigger="xxxx" image_id="x">
            <point y="y" x="x" vy="x" vx="x"/>
        </image>
    </images>
    <trajectory uid="171126T104028_0_0000314183_34">
        <point y="i want this" x="and this" vy="and this as well" vx="still this"/>
    </trajectory>
</trajectories>

我目前的代码是:

tree = ET.parse("trajectories/test.xml")
root = tree.getroot()

for traj in tree.findall("./trajectories/trajectory"):
    y = traj.attrib('point')
    print(y) 

我在tree.findall()部分遇到了一些麻烦。

有人知道如何读取这些值中的任何一个吗?

谢谢,如果有人可以帮助我,我将非常感谢

1 个答案:

答案 0 :(得分:1)

我认为问题在于point不是xml 属性,而是标签。它的属性是yxvyvx,据我从注释中了解,这就是您要尝试访问的内容。因此,我相信您的代码应该看起来或多或少:

for p in tree.findall(".//trajectory/point"):
    x = p.attrib['x'] 
    y = p.attrib['y']
    vx = p.attrib['vx']
    vy = p.attrib['vy']