Bu sayfanın kodu başlamadı.

index.html dosyasını doğrudan bir klasörden açmak JavaScript modüllerini engeller, bu yüzden bir dosya seçildiğinde hiçbir şey olmaz. Klasörü bunun yerine http üzerinden sunun:

powershell -ExecutionPolicy Bypass -File serve.ps1

Ardından http://localhost:8080/ adresini açın.

XML Biçimlendirici — açın, sıkıştırın ya da JSON'a çevirin

Okunmak için açılmış ya da gönderilmek için sıkıştırılmış XML, ve iki yönde de JSON'a çevrilmiş hâli. Bunların hiçbiri başkasının sunucusuna yapıştırılmaz.

Dil: Türkçe
Kaynak kodu görüntüle
XML ve JSON dosyalarınız asla yüklenmez. Sunucu yoktur.

Biçimlendirmek ve çevirmek, bir metin dizisi üzerinde yapılan aritmetiktir; burada, bu sayfada yapılır. Ayrıştırıcı elle yazılmıştır ve src/shared/parse-xml.js içindedir, başka da bir şey yoktur. Bu aracın herhangi bir ağ işlevi hiç yoktur — getirecek bir şey de, gönderecek bir şey de — ve bu, burada „XML“ kelimesinin düşündürdüğünden daha çok önemlidir: bu biçimde gelen şey çoğunlukla bir fatura, bir hesap özeti, bir sağlık kaydı ya da başlığında birinin kimlik bilgileri duran bir SOAP isteğidir.

Canlı kontrol: kontrol ediliyor…

Çevrimdışı: kontrol ediliyor…

Sözümüze güvenmek zorunda değilsiniz: DevTools'u açın, ağ sekmesini izleyin ve bir şey biçimlendirin. Tek bir istek bile yapıştırdığınızdan bir karakter taşımaz. Ya da internet bağlantısını kesin ve yine de biçimlendirin.

1 İşi seçin

Düzen Düz sıkıştırmak, yalnızca okunsun diye konmuş her boşluğu çıkarılmış aynı belgedir.

Dıştaki öğenin adı XML'in en üstte tek bir öğesi vardır, JSON'un yoktur; yani birinin uydurulması gerekir.

2 Yapıştırın

boş

3 Sonucu alın

Henüz bir şey yok.

 

Markdown olarak görüntüle

XML yüklemeden nasıl biçimlendirilir

  1. İşi seçin. İki sekme, tek kutu: Biçimlendir XML'i açar ya da sıkıştırır; Çevir onu JSON'a, ya da JSON'u yeniden XML'e döndürür. Az önce açtığınız XML, iki kez yapıştırmadan çevirdiğiniz XML'dir.
  2. Yapıştırın ya da dosyayı bırakın. Seçip kopyalayabildiğiniz her şey olur; seçiciye bırakılan bir .xml, .svg, .rss ya da .xsd dosyasını kendi tarayıcınız okur ve kutuya koyar — atlanacak bir yükleme adımı yoktur.
  3. Girintiyi seçin ya da sıkıştırın. İki boşluk, dört ya da bir sekme. Düz sıkıştırmak, yalnızca okunsun diye konmuş her boşluğu çıkarılmış aynı belgedir ve sonuç, bunun kaç bayt kazandırdığını söyler.
  4. Hatayı hatanın olduğu yerde okuyun. Burada başarısız olan bir ayrıştırıcı, tarayıcının bir çırpıda okuduğu bir belge için söylediği „1. satırda hata“ yerine, hangi etiketin hiç kapatılmadığını ve hangi satır ile sütunda olduğunu söyler.
  5. Sonucu alın. Kopyalayın ya da çıktığı biçimin adını taşıyan bir dosya olarak indirin.

Sorular

XML'im bir yere yükleniyor mu?

Hayır. Bu sayfadaki ayrıştırıcı ve yazıcı, kendi tarayıcınızda, kendi donanımınızda çalışan işlevlerdir. Bu aracın herhangi bir ağ işlevi hiç yoktur — hiçbir zaman bir şey getirmez ve hiçbir zaman bir şey göndermez — ve sayfanın Content-Security-Policy'si iletişim kurabileceği her adresi sayar; hiçbiri bize ait değildir. Bu, XML için biçimin ününün düşündürdüğünden daha çok önemlidir: içinde gelen şey çoğunlukla bir fatura, bir hesap özeti, bir sağlık kaydı ya da başlığında kimlik bilgileri duran bir SOAP isteğidir.

Dış varlıkları çözümlüyor mu?

Hayır, ve kapatılacak bir şey de yok. Dış varlık çözümlemesi, bir XML ayrıştırıcısının kendisini çalıştıran makinedeki dosyaları okumaya ikna edilme yoludur — genellikle XXE diye yazılan saldırı — ve src/shared/parse-xml.js içinde hiç varlık çözümlemesi olmayan elle yazılmış bir okuyucudur. Metniniz tarayıcının kendi DOMParser'ına da hiçbir zaman verilmez. Bir DOCTYPE, hiç işletilmeden olduğu gibi taşınır.

XML'i JSON'a çevirirken ne kaybolur?

Karışık içeriğin sırası, yorumlar ve bir öznitelik ile bir alt öge arasındaki fark — sonuncusu silinmekten çok yumuşatılır, çünkü bir öznitelik adı @ ile başlayan bir üyeye dönüşür. Bir ögenin kendi metni, başka bir şeyin yanında durmak zorunda kaldığında #text olur ve yinelenen alt ögeler bir diziye dönüşür. Her değer metin olarak kalır: XML'in türleri yoktur ve 8080'in bir sayı olduğuna karar vermek bilgi uydurmak olurdu.

JSON'u XML'e çevirirken ne kaybolur?

Boş bir nesne, boş bir dizi ve boş bir metin arasındaki fark — üçü de boş bir ögeye dönüşür — ve her değerin türü, çünkü XML'in türleri yoktur. Bir dizi, geri okunabilen tek biçim olan yinelenen bir ögeye dönüşür; bir öge adının taşıyamayacağı bir anahtarın da zor karakterleri, hiçbir ayrıştırıcının okumayacağı bir belge üretmek yerine değiştirilir.

Bir SVG'yi, bir RSS akışını ya da bir POM dosyasını biçimlendirebilir mi?

Evet. Üçü de XML'dir ve bu, XML'in belirli bir lehçesini değil XML'i okur. Böyle açılmış bir SVG'yi elle düzenlemek daha kolaydır; bir RSS ya da Atom akışı genellikle sıkıştırılmış gönderilir ve bir şey onu açana dek okunmaz. Yerleşimin belgenin anlamına hiçbir etkisi yoktur.

XML'i yeniden girintilemek anlamını değiştirir mi?

Ögeleri başka ögeler tutan bir belge için hayır. Önemli olabileceği yer metindir: sözcük tutan bir ögenin içindeki boşluk o metnin parçasıdır, bu yüzden yalnızca metin tutan bir öge açılmak yerine tek satırda bırakılır. CDATA bölümleri tam olduğu gibi kopyalanır.

Neden tarayıcının kendi XML ayrıştırıcısı kullanılmıyor?

Belge bozuk olduğunda söylediği şey yüzünden. DOMParser, ifadesi her tarayıcıda farklı olan ve çoğu zaman „1. satırda hata“ya inen bir hata belgesi döndürür. Elle yazılmış bir okuyucu, hangi etiketin hiç kapatılmadığını ve nerede açıldığını söyleyebilir; asıl bilmeniz gereken de buydu. Dış varlıkları çözümlememek de öteki nedendir.

Ne kadar büyük bir dosyayı işleyebilir?

Burada konulmuş bir sınır yoktur, çünkü bunun bedelini ödeyen bir sunucu yoktur. Gerçek tavan kendi cihazınızdır: birkaç megabaytlık XML sorun çıkarmaz ve çok uzun bir belgede sayfa, klavyeyi sizinle paylaşmamak yerine yeniden biçimlendirmeden önce yazmanızda bir duraklama bekler.

Ücretsiz mi, hesap gerekiyor mu?

Ücretsizdir; hesap, oturum açma, deneme süresi ve ne kadar yapıştıracağınıza dair bir sınır yoktur. Sitede reklam vardır, masrafı karşılayan da odur; reklamlara metninizle ilgili hiçbir şey verilmez.

Çevrimdışı çalışır mı?

Evet. Sayfayı bir kez yükleyin, sonra internet bağlantısını kesin; çalışmayı sürdürür. Bu aynı zamanda hiçbir şeyin yüklenmediğini kanıtlamanın en basit yoludur: XML'inizi biçimlendirilmek üzere gönderen bir araç, fişi çektiğiniz anda dururdu.