URL: https://linuxfr.org/forums/programmation-python/posts/%C3%A9crire-du-xml-en-s%C3%A9rie-sans-stockage-int%C3%A9gral-en-m%C3%A9moire Title: Écrire du XML en série, sans stockage intégral en mémoire Authors: 🚲 Tanguy Ortolo Date: 2010年07月06日T14:36:39+02:00 Tags: Score: 0 Bonjour, Je vais coder un outil qui fera des modifications légères dans des fichiers OpenDocument, à savoir : changer quelques attributs href dans des balises. En bon unixien, pour un tel traitement, je pense tout de suite à une lecture au fur et à mesure, une modification et une écriture à la volée : pas question de tout charger en mémoire, ça n'apporterait rien sinon une plus grande consommation de ressources. Sauf que c'est du XML, et que ça ne se traite certainement pas ligne par ligne, mais plutôt balise par balise. Techniquement, rien ne s'oppose à un tel traitement à la volée. La lecture au fur et à mesure peut se faire avec un parseur SAX. Mais qu'en est-il de l'écriture ? J'ai l'impression qu'il n'existe tout simplement _rien_ pour écrire du XML à la volée sans le stocker intégralement en mémoire. Sauriez-vous si je me trompe, et si en fait, ça existe, bien sûr ? J'ai bien une solution de secours, qui consiste à lancer xmlstarlet pyx, pour convertir ce XML en PYX, un format équivalent orienté lignes, puis à traiter ligne par ligne, et à ressortir xmlstarlet pour en refaire du XML. Mais ça me dégoûte un peu de devoir lancer un processus pour cela alors que je pourrais ne pas quitter Python.

AltStyle によって変換されたページ (->オリジナル) /