İçeriğe geç
Muslu Yüksektepe

Xml_Beautifier

XML dosyalarını otomatik girintileyip okunur hâle getiren küçük bir Python aracı.

Xml_Beautifier, bir XML dosyasını okunabilir biçimde girintilemek için 2016 yılında yazdığım kısa bir Python örneği. Depoda tek bir dosya var ve işi lxml kütüphanesi yapıyor.

Amaç

Servislerden dönen ya da başka sistemlerin ürettiği XML dosyaları çoğu zaman satır sonu ve girinti olmadan tek parça hâlinde geliyor. İç içe geçmiş çok sayıda etiket içeren bir XML'i bu hâliyle okumak ve aradığım alanı bulmak zor. Bu örneği, bir XML dosyasını Python içinden düzgün girintili hâle getirmenin en kısa yolunu not etmek için yazdım. Aynı gün hazırladığım HTML, CSS, JavaScript, SQL ve JSON girintileme örnekleriyle birlikte küçük bir dizinin parçası.

Nasıl çalışır

Betik önce lxml kütüphanesinin etree modülünü içe aktarıyor. Ardından etree.parse ile diskteki bir XML dosyasını okuyup ağaç yapısına çeviriyor. Son adımda bu ağacı etree.tostring fonksiyonuyla yeniden metne dönüştürüyor. Bu çağrıya verilen pretty_print=True ayarı, her etiketin kendi satırına alınmasını ve iç içe geçmiş etiketlerin seviyelerine göre girintilenmesini sağlıyor. Sonuç ekrana yazılıyor.

Öne çıkan özellikler

  • XML'i önce ayrıştırıp sonra yeniden yazdığı için girintileme etiketlerin gerçek iç içe yapısına göre yapılıyor.
  • Dosya geçerli bir XML değilse ayrıştırma aşamasında hata verdiği için bozuk dosyalar da fark ediliyor.

Teknik altyapı

Kod Python ile yazıldı ve tek dış bağımlılığı lxml kütüphanesi. Örnek, print ifadesinin parantezsiz kullanıldığı Python 2 sözdizimiyle yazılmış. Okunacak dosyanın adı kodda sabit bir yer tutucu olarak duruyor.

Durum

Bu bir not niteliğinde örnek ve 2016'dan bu yana güncellenmedi. Kullanmak için dosya adını kendi XML dosyanızla değiştirmek, Python 3'te çalıştırmak için de print satırını fonksiyon çağrısı biçimine çevirmek gerekiyor.

Kullanım alanları

  • Bir web servisinden dönen XML yanıtını incelemeden önce okunur hâle getirmek için kullanılabilir.
  • Yapılandırma ya da veri aktarımı için kullanılan XML dosyalarını düzenli bir biçimde saklamaya yardımcı olur.
  • Başka bir Python aracına XML biçimlendirme eklerken başlangıç noktası olabilir.
Kategori
Geliştirici araçları
Yıl
2016

Teknolojiler

  • Python
  • XML

Bağlantılar

  • GitHub https://github.com/muslu/Xml_Beautifier

Tüm projelere dön