У меня есть дерево XML, которое я бы хотел проанализировать с помощью Elementtree. Мой XML выглядит какДерево элементов: как разбирать субэлементы дочерних узлов
<?xml version="1.0" encoding="UTF-8"?>
<GetOrdersResponse xmlns="urn:ebay:apis:eBLBaseComponents">
<Ack>Success</Ack>
<Version>857</Version>
<Build>E857_INTL_APIXO_16643800_R1</Build>
<PaginationResult>
<TotalNumberOfPages>1</TotalNumberOfPages>
<TotalNumberOfEntries>2</TotalNumberOfEntries>
</PaginationResult>
<HasMoreOrders>false</HasMoreOrders>
<OrderArray>
<Order>
<OrderID>221362908003-1324471823012</OrderID>
<CheckoutStatus>
<eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus>
<LastModifiedTime>2014-02-03T12:08:51.000Z</LastModifiedTime>
<PaymentMethod>PaisaPayEscrow</PaymentMethod>
<Status>Complete</Status>
<IntegratedMerchantCreditCardEnabled>false</IntegratedMerchantCreditCardEnabled>
</CheckoutStatus>
</Order>
<Order> ...
</Order>
<Order> ...
</Order>
</OrderArray>
</GetOrdersResponse>
Я хочу, чтобы разобрать 6-й дочерний XML() Я могу получить значение подэлементов по индексу. Например, если я хочу OrderID первого порядка, я могу использовать root[5][0][0].text
. Но я хотел бы получить значения subElements по имени. Я пробовал использовать следующий код, но ничего не печатает:
tree = ET.parse('response.xml')
root = tree.getroot()
for child in root:
try:
for ids in child.find('Order').find('OrderID'):
print ids.text
except:
continue
Не мог бы кто-нибудь помочь мне. Спасибо
Удалите «try-except-continue» и опубликуйте трассировку, которую вы получите. –
@NigelTufnel: Traceback (самый последний звонок последний):. Файл "test.py", строка 7, в для ид в child.find ('Order') найти ('OrderID'): AttributeError: «NoneType 'объект не имеет атрибута' find ' –
nish