HTML’den XML’e Dönüştürücü
Dağınık HTML yapıştırın. İyi biçimlendirilmiş XML alın.
Bu araç ne yapar
Kopyala-yapıştır bir HTML parçasını bir XSLT hattına ya da katı bir XML ayrıştırıcıya sokmak zorunda kaldıysanız, bu acıyı bilirsiniz. Tarayıcılar hoşgörüsüyle ünlüdür — WHATWG spesifikasyonundaki HTML ayrıştırıcı <li> etiketlerinizi sessizce kapatır, tırnaksız öznitelikleri kabul eder ve eksik bir </p>’ye omuz silker. XML ayrıştırıcı öyle değildir. Ona aynı işaretlemeyi verin, 3. satırda ayrıştırma hatası alırsınız. Bu araç, gerçek dünya HTML’ini — yani bir CMS’den ya da eski bir şablondan gerçekten yapıştırdığınız türden olanı — alır ve standartlara uygun bir ayrıştırıcının ilk denemede kabul edeceği XML’e çevirir.
Mesele sadece etiket kapatmaktan ibaret değil. Dönüştürücü, HTML’i gevşek ve XML’i katı yapan tüm meseleleri halleder: <br>, <img> ve <hr> gibi boş elemanlar <br/> olarak kendini kapatır; checked ve disabled gibi boolean öznitelikler checked="checked"’a açılır; tırnaksız öznitelik değerleri çift tırnağa sarılır; tutarlılık için etiket adları küçük harfe çevrilir; ve XML’in bilmediği bir avuç adlandırılmış HTML varlığı ( , —, £, × vb.), her XML ayrıştırıcının anladığı   gibi sayısal varlıklara dönüştürülür.
Yorumlar dokunulmadan geçer. <script> ve <style> içindeki CDATA bölümleri korunur. Çıktı, gerçekten okuyabileceğiniz şekilde güzel biçimlendirilir ve bir XML belgesi olarak W3C doğrulamasından geçer ya da doğrudan bir XHTML 1.0 akışına oturur. Gerçekten istediğiniz şey XHTML Strict ise, yolun %95’ini bitirmiş olursunuz — doctype’ı ve ad alanını en üste kendiniz eklersiniz.
Nasıl kullanılır
Üç adım. Tek bir paragraf da yapıştırsanız koca bir sayfa şablonu da yapıştırsanız aynı şekilde çalışır.
HTML’inizi yapıştırın (ya da örneği deneyin)
HTML’inizi soldaki editöre olduğu gibi bırakın. Kapatılmamış etiketler, çıplak boolean öznitelikler, tırnaksız değerler, kendini kapatmayan boş elemanlar — hepsi sorun değil. Önce gerçekçi, dağınık bir örnek görmek isterseniz Örnek Yükle’ye tıklayın.
Elle hiçbir şeyi düzeltmeniz gerekmez. Bu aracın tüm amacı zaten o temizliği sizin yerinize yapmasıdır. CMS’inizden, Word dosyanızdan ya da eski şablonunuzdan çıktığı gibi yapıştırın.
Dönüştür’e basın
Yeşil Dönüştür butonuna tıklayın. Araç HTML’inizi hoşgörülü bir ayrıştırıcıyla ayrıştırır, sonra bir XML yazıcıdan geçirip yeniden serileştirir — böylece her etiket kapanır, her öznitelik tırnak içinde olur ve her varlık geçerli XML olur.
XML’i kopyalayın
Sağ panel, girintili ve iyi biçimlendirilmiş XML ile dolar. Onu XSLT girdinize, DOM test fixture’ınıza, EPUB derlemenize ya da katı bir ayrıştırıcının takılmayacağı bir işaretlemeye ihtiyacınız olan başka herhangi bir yere kopyalayın.
Gerçekten ne zaman işe yarar
HTML’i XSLT’ye ya da bir XML hattına aktarmak
İçeriği PDF’e, besleme kanalına ya da başka bir formata çeviren bir XSLT stil sayfanız var — ama girdiniz XML değil, CMS’den gelen HTML. Önce dönüştür, sonra dönüştür.
XHTML-strict doğrulama
Hâlâ XHTML 1.0 Strict isteyen eski bir intranet mi? Editörünüzün ürettiği dağınık HTML’i yapıştırın, XML’i kopyalayın, üstüne bir doctype bırakın, iş tamam.
Blog işaretlemesini EPUB / e-okuyucular için dönüştürmek
EPUB, altında XHTML’dir ve eksik bir <code></p></code>’yi kesinlikle reddeder. Paketleme öncesi bir bölümlük blog HTML’ini tek yapıştırmayla temizleyin.
Arşivleme sistemleri için temizlik
Eski HTML’i XML tabanlı bir arşive (DSpace, Fedora Commons, JATS tadında her şey) mi aktarıyorsunuz? Katı şemalar, tarayıcının iyi render etmesini umursamaz — önce dönüştürün.
Sık sorulan sorular
HTML’i "gevşek", XML’i "katı" yapan şey aslında nedir?
Üç büyük şey. Birincisi, HTML’de kapanış etiketi olmaması beklenen boş elemanlar var (<br>, <img>, <input>, <hr>, <meta>, <link>) — XML ise ya <br></br> ya da <br/> ister. İkincisi, HTML <li> ve <p> gibi şeylerde kapanış etiketlerini tamamen atlamanıza izin verir çünkü ayrıştırma algoritması onları kendi çıkarır. Üçüncüsü, HTML tırnaksız öznitelikleri (class=foo) ve değersiz öznitelikleri (disabled) kabul eder. XML üçünü de reddeder.
`checked` ve `disabled` gibi boolean özniteliklere ne olur?
XHTML biçimine açılırlar. <input type=checkbox checked disabled>, <input type="checkbox" checked="checked" disabled="disabled"/> olur. Her öznitelik sonunda bir ad VE tırnaklı bir değerle biter; bu XML’in tam olarak istediği şeydir — XML’de değersiz öznitelik diye bir şey yoktur.
` ` ve `—` gibi HTML varlıkları nasıl işlenir?
XML varsayılan olarak sadece beş adlandırılmış varlık bilir: &, <, >, ", '. Geri kalan her şey — , —, £, © — sayısal biçime ( , —, £, ©) dönüştürülür, böylece herhangi bir XML ayrıştırıcı DTD olmadan kabul eder.
Yorumlar gidiş-dönüşten sağ çıkıyor mu?
Evet. <!-- incelemeye işaretlendi --> girer, aynısı çıkar. Yorumlar hem HTML’de hem XML’de aynı söz dizimiyle geçerlidir, bu yüzden dokunulmadan geçerler — editoryal notlar veya derleme zamanı işaretçileri için kullanıyorsanız pratiktir.
Etiket ve öznitelik adlarını küçük harfe çeviriyor mu?
Evet, varsayılan olarak. <DIV Class="Foo">, <div class="Foo"> olur. Etiket ve öznitelik adları, XHTML 1.0 geleneğine uyması için küçük harfe getirilir. Öznitelik DEĞERLERİ olduğu gibi bırakılır — tırnaklar arasına koyduğunuz içeriğe dokunmayız, çünkü orası sizin veriniz.
Bu yetmediğinde — araç hangi durumları ELE ALMAZ?
Rastgele <script> içeriği metin olarak korunur, ama araç JavaScript’i XML-güvenli olacak şekilde yeniden yazmaya çalışmaz. JS’iniz çıplak < veya & karakterleri içeriyorsa onu kendiniz <![CDATA[...]]> ile sarmalısınız (mevcut CDATA’yı koruruz). Belge parçaları sorunsuzdur; <?xml ?> bildirimini ya da doctype’ı kendimiz üretmeyiz — aşağıdaki tüketiciniz istiyorsa kendiniz ekleyin.
İhtiyaç duyabileceğiniz diğer araçlar
HTML’den XML’e, bulmacanın bir parçası. Şu araçlarla iyi gider: