我设计了这个简化的XML文件,它非常类似于我必须解析的XML文件。我试图解析以下节点中的文本(Food,Date,ItemCondition,Amount)
<?xml version="1.0"?>
<Region>
<District>
<Store>
<Department>
<Produce>
<Food>Apple</Food>
</Produce>
</Department>
<ProductInfo>
<BoxofFruit>
<Qualifiers>
<ItemCondition>New</ItemCondition>
</Qualifiers>
<Date>101214</Date>
<Price>
<LandedPrice>
<CurrencyCode>USD</CurrencyCode>
<Amount>19.99</Amount>
</LandedPrice>
</Price>
</BoxofFruit>
<BoxofFruit>
<Qualifiers>
<ItemCondition>New</ItemCondition>
</Qualifiers>
<Date>091114</Date>
<Price>
<LandedPrice>
<CurrencyCode>USD</CurrencyCode>
<Amount>21.99</Amount>
</LandedPrice>
</Price>
</BoxofFruit>
</ProductInfo>
</Store>
</District>
</Region>
对于我的生活,我似乎无法得到食物文本。继承了我现有的代码,只要我不包含食品部分就可以了。
Fruit = root.findall('.//BoxofFruit')
for Apple in Fruit:
Date = Apple.find('Date').text
Condition = Apple.find('Qualifiers/ItemCondition').text
Price = Apple.find('Price/LandedPrice/Amount').text
print(Date, Condition, Price)
这是我从代码中收到的内容:
101214 New 19.99
091114 New 21.99
以下是我希望看到的一个例子:
Apple 101214 New 19.99
Apple 091114 New 21.99
多年来,我一直在摸索这一点。我非常感谢你的帮助。
答案 0 :(得分:0)
由于Food
不在BoxofFruit
,因此您必须事先获取它。例如:
fruit = root.find('.//Food').text
for Apple in root.findall('.//BoxofFruit')
Date = Apple.find('Date').text
Condition = Apple.find('Qualifiers/ItemCondition').text
Price = Apple.find('Price/LandedPrice/Amount').text
print(fruit, Date, Condition, Price)