Pagina 1 di 1

[RISOLTO] Analizza XML su BeautifulSoup

Pubblicato: 16 ottobre 2024 - 15:38
di jmorillo
Salve,

devo creare un pacchetto "Clari Copilot" (facile, il loro installer.exe funziona correttamente con /S).
Tuttavia, sono bloccato sulla funzione update_package.py perché il binario è ospitato su una CDN, senza una pagina HTML principale, ma sono riuscito a trovare una pagina XML che elenca le release.
In setupdevhelpers.py, sono presenti le funzioni bs_find e bs_find_all (che chiamano BeautifulSoup (bs4)) con funzionalità "html.parser" di default.
BeautifulSoup, così come le funzioni bs_find*, accetta funzionalità "xml", tranne per il fatto che BeautifulSoup richiede la libreria Python "lxml", che non è presente di default nell'ambiente virtuale Python di WAPT, credo.
Potrei creare un parser rudimentale usando una soluzione alternativa, ma sarebbe meglio usare bs_find* e BeautifulSoup nativamente con XML.
Avete qualche suggerimento? È previsto di integrare questa libreria LXML in una release futura? O forse mi è sfuggito qualcosa?...
Grazie mille in anticipo.
Cordialmente,
Jordi

Re: Parser XML su BeautifulSoup

Pubblicato: 16 ottobre 2024 - 16:45
di blemoigne
Ciao Jordi,
puoi comunque analizzare l'XML con il parser HTML (riceverai un avviso). Questo è il caso di questo pacchetto: https://wapt.tranquil.it/store/fr/tis-0install

Re: Parser XML su BeautifulSoup

Pubblicato: 16 ottobre 2024 - 18:33
di jmorillo
Grazie mille, Bertrand!
Tutto funziona correttamente!
Solo un piccolo problema perché l'elemento XML è stato dichiarato in questo modo: "<Key> "

Non ho trovato alcun risultato per

Codice: Seleziona tutto

bs_find_all('https://contoso.com/test.xml', 'Key')
Dovevi mettere Chiave -> chiave (minuscola) in

Codice: Seleziona tutto

bs_find_all('https://contoso.com/test.xml', 'key')
affinché venga visualizzato un risultato.
In ogni caso, riuscirò a terminare la funzione update_package.
Grazie ancora mille

Re: Parser XML su BeautifulSoup

Pubblicato: 17 ottobre 2024 - 15:47
di dcardon
Ciao Jordi,
grazie per il tuo feedback, :-)
contrassegno la discussione come risolta.
Denis