Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.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:解析满足多个条件/子节点上的条件的节点_Xml_Python 3.x_Elementtree - Fatal编程技术网

带元素树的Python XML:解析满足多个条件/子节点上的条件的节点

带元素树的Python XML:解析满足多个条件/子节点上的条件的节点,xml,python-3.x,elementtree,Xml,Python 3.x,Elementtree,您好,我对Python和XML都是新手(我知道这是一个很好的组合),非常感谢您的帮助。我有一个xml文档,基本上如下所示: <root> <elementaryExchange elementaryExchangeId='alkjalj' amount='5'> <compartment subcompartmentId='52u0298452'>x</compartment> <inputGroup>'4

您好,我对Python和XML都是新手(我知道这是一个很好的组合),非常感谢您的帮助。我有一个xml文档,基本上如下所示:

<root>
   <elementaryExchange elementaryExchangeId='alkjalj' amount='5'>
      <compartment subcompartmentId='52u0298452'>x</compartment>
      <inputGroup>'4'</inputGroup>
   </elementaryExchange>
</root>

o和p似乎工作正常,但我似乎无法理解小班id部分。谢谢你的提示

在上述代码中,我想要的列表分别是o、p和r,用于基本交换ID、金额和小班ID。我想我已经明白了——我只是不明白如何使用xpath:

for LX in root.findall(".//elementaryExchange/[inputGroup='4']"):
    o.append(LX.attrib['elementaryExchangeId'])
    p.append(float(LX.attrib['amount']))    
for LXc in root.findall(".//elementaryExchange/[inputGroup='4']/compartment"):       
    r.append(LXc.attrib['subcompartmentId'])
for LX in root.findall(".//elementaryExchange/[inputGroup='4']"):
    o.append(LX.attrib['elementaryExchangeId'])
    p.append(float(LX.attrib['amount']))    
for LXc in root.findall(".//elementaryExchange/[inputGroup='4']/compartment"):       
    r.append(LXc.attrib['subcompartmentId'])