嗨,我是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部分。感谢您的提示!
答案 0 :(得分:0)
在上面的代码中,我想要的列表分别是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'])