Python XML with Element Tree: 解析子节点上满足多个conditions/conditions的节点
Python XML with Element Tree: Parsing nodes that meet multiple conditions/conditions on child nodes
您好,我是 Python 和 XML 的新手(我知道很好的组合),感谢您的帮助。我有一个 xml 文档,基本上是这样的:
<root>
<elementaryExchange elementaryExchangeId='alkjalj' amount='5'>
<compartment subcompartmentId='52u0298452'>x</compartment>
<inputGroup>'4'</inputGroup>
</elementaryExchange>
</root>
除了有很多这样的 elementaryExchange 节点(我只关心 inputGroup='4' 的节点)。我正在尝试制作几个列表,其中每个元素对应于相同的基本交换。到目前为止我的代码:
for j, LX in enumerate(root.findall(".//elementaryExchange/[inputGroup='4']")):
o.append(LX.attrib['elementaryExchangeId'])
p.append(float(LX.attrib['amount']))
for c in root.find(".//elementaryExchange[@elementaryExchangeId==o[j]].../compartment"):
r.append(c.attrib['subcompartmentId'])
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'])
您好,我是 Python 和 XML 的新手(我知道很好的组合),感谢您的帮助。我有一个 xml 文档,基本上是这样的:
<root>
<elementaryExchange elementaryExchangeId='alkjalj' amount='5'>
<compartment subcompartmentId='52u0298452'>x</compartment>
<inputGroup>'4'</inputGroup>
</elementaryExchange>
</root>
除了有很多这样的 elementaryExchange 节点(我只关心 inputGroup='4' 的节点)。我正在尝试制作几个列表,其中每个元素对应于相同的基本交换。到目前为止我的代码:
for j, LX in enumerate(root.findall(".//elementaryExchange/[inputGroup='4']")):
o.append(LX.attrib['elementaryExchangeId'])
p.append(float(LX.attrib['amount']))
for c in root.find(".//elementaryExchange[@elementaryExchangeId==o[j]].../compartment"):
r.append(c.attrib['subcompartmentId'])
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'])