Перебор узлов XML на Python

Требуется из этой XML распарсить узлы и дочерние элементы в соответствии с их соотношением друг к другу. Схема сопоставления: <s>IP-адрес</s>,<d>IP-адрес</d>,<dport>INT</dport>,<p>TCP/UDP</p> Пример: 10.11.11.1, 10.12.11.3, 465, TCP. Объяснение: (s=source,d=destination,dport=port,p=protocol) | На всякий случай, приложу ещё сам iptables. Делал через Python, но там в выводе получается мусор и они неравномерно распределяются - код ниже. Спасибо большое

from bs4 import BeautifulSoup as Soup

if __name__ == '__main__':
    with open('1.xml', 'r', encoding='utf-8') as xml:
        soup = Soup(xml.read(), 'lxml')

    dport_tcp = [tcp.find('dport').text for tcp in soup.find_all('tcp')]
    dport_udp = [udp.find('dport').text for udp in soup.find_all('udp')]
    multport = [multiport.find('dports').text for multiport in soup.find_all('multiport')]
    ports = dport_tcp+dport_udp+multport
    #print(dport_tcp, dport_udp, sep='\n')
    source = [match.find('s') for match in soup.find_all('match')]
    destination = [match.find('d') for match in soup.find_all('match')]
    for match in soup.find_all('match'):
        if match.find('d') == 'None':
            print("error")
    print(destination)

Ответы (0 шт):