Simple XML2JSON

Iniciado por DtxdF, Marzo 21, 2020, 12:20:56 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Marzo 21, 2020, 12:20:56 AM Ultima modificación: Marzo 21, 2020, 01:03:16 AM por DtxdF
Lo siguiente, será un pequeño código para parsear XML a JSON usando la librería BeautifulSoup. Un código que les servirá a las personas que estén dando su primeros pasos en el scraping.

Código: python
import sys
import os
import signal
from json import dumps
from bs4 import BeautifulSoup

def xml2json(data):
    xml_parser = []

    for _ in data:
        xml_parser.append({
            _.name:
            (_.attrs, _.text)

            })

    return dumps(xml_parser, indent=6)

if (__name__ == '__main__'):
    program = sys.argv[0]
    argv = sys.argv[1:]

    if (argv == []):
        print(f'Uso: {program} <file>.xml')
        sys.exit(1)

    xml_file = argv[0]

    if (xml_file[0] == '-'):
        xml_data = sys.stdin.read()

    else:
        if not (os.path.isfile(xml_file)):
            print('Error, el archivo XML no existe')
            sys.exit(2)

        with open(xml_file, 'rb') as _file_object:
            xml_data = _file_object.read()

    xml_data = BeautifulSoup(xml_data, 'xml').find_all()

    print(xml2json(xml_data))


PD-#1: No dejé nada de comentarios, para que hagan una investigación ardua sobre todo ello... Su compañero será help(...)
PD-#2: Ejecuten lo siguiente y verán una magia:

Código: bash
nmap -T5 -n localhost -oX - | python3 xml2json.py - | less


~ DtxdF
PGP :: <D82F366940155CB043147178C4E075FC4403BDDC>

~ DtxdF