Как собрать все подэлементы дочернего элемента в выводе XML перед переходом на следующий уникальный идентификатор с помощью Python - PullRequest
0 голосов
/ 07 октября 2019

В цикле я пытаюсь собрать несколько подэлементов под конкретным дочерним элементом для каждого IP, прежде чем перейти к следующему.

Я перебираю вывод XML вызова API. В выводе XML есть дочерний элемент, который имеет несколько подэлементов. При записи в CSV цикл захватывает только 1-й подэлемент, прежде чем перейти к следующему ряду.

with open('90daypurgeList' +'_'+ timestamp +'.csv', 'wb') as csvfile:
    csv_writer = csv.writer(csvfile)
    row = ['hostIP', 'hostID', 'tagID', 'tagName']
    csv_writer.writerow(row)

    for host in root.iter('HOST'):
        hostIP = host.find('IP').text
        hostID = host.find('ID').text

        tagID = host.find('TAGS').find('TAG').find('TAG_ID').text
        tagName = host.find('TAGS').find('TAG').find('NAME').text
        row = [hostIP, hostID, tagID, tagName]
        csv_writer.writerow(row)

Вывод XML:

<HOST>
  <ID>720398</ID>
  <IP>192.168.25.19</IP>
  <TAGS>
    <TAG>
      <TAG_ID><![CDATA[78651]]></TAG_ID>
      <NAME><![CDATA[Corporate]]></NAME>
    </TAG>
    <TAG>
      <TAG_ID><![CDATA[86241]]></TAG_ID>
      <NAME><![CDATA[GRP-End-User Subnets]]></NAME>
    </TAG>
    <TAG>
      <TAG_ID><![CDATA[0468]]></TAG_ID>
      <NAME><![CDATA[Windows 10]]></NAME>
    </TAG>
  </TAGS>
</HOST>

Я ожидал получить все подэлементы дочернего элемента, но только получить начальный подэлемент перед переходом на следующий уникальный идентификатор. Может кто-нибудь, пожалуйста, покажите мне, что мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...