如果其中一个包含关键字,我需要从 XML 中提取几个节点。最后,我要指出如果找到关键字,我将在哪里打印。现在是棘手的部分(至少对我来说;-))。我将在下面更详细地解释它。XML:
<?xml version="1.0"?>
<ItemSearchResponse xmlns="http://url">
<Items>
<Item>
<ItemAttributes>
<ListPrice>
<Amount>2260</Amount>
</ListPrice>
</ItemAttributes>
<Offers>
<Offer>
<OfferListing>
<Price>
<Amount>1853</Amount>
</Price>
</OfferListing>
</Offer>
</Offers>
<Offers>
<Offer>
<OfferListing>
<Price>
<Amount>1853</Amount>
</Price>
</OfferListing>
</Offer>
</Offers>
<Offers>
<Offer>
<OfferListing>
<Price>
<Amount>1200</Amount>
</Price>
</OfferListing>
</Offer>
</Offers>
</Item>
</Items>
</ItemSearchResponse>
如果找到,我的脚本会打印出金额值和 == 1853。我真正需要的是:找到 1853 时 - 脚本应该将整个提取<Offers>
到新文件中。我让脚本运行并卡住了。我真的不知道如何从整个团队中恢复过来<Amount>
并复制整个<Offers>
团队。
脚本 1:
import xml.etree.ElementTree as ET
import sys
name = str.strip(sys.argv[1])
filename = str.strip(sys.argv[2])
fp = open("sample.xml","r")
element = ET.parse(fp)
for elem in element.iter():
if elem.tag == '{http://url}Price':
output = {}
for elem1 in list(elem):
if elem1.tag == '{http://url}Amount':
if elem1.text == name:
output['Amount'] = elem1.text
print output
我的输出:
python sample1.py '1853' x
{'Amount': '1853'}
{'Amount': '1853'}
这里的“x”是无关紧要的。
如何从整个组中返回<Amount>
并将整个<Offers>
组复制到一个新文件中,或者只是将其打印出来。它需要使用 ElementTree 来完成。