Sola HTML yapıştırın ve "Dönüştür"’e tıklayın — iyi biçimlendirilmiş XML’e çeviririzHTML yapıştır

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ığı (&nbsp;, &mdash;, &pound;, &times; vb.), her XML ayrıştırıcının anladığı &#160; 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.

1

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.

2

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.

3

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>&lt;/p&gt;</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.

`&nbsp;` ve `&mdash;` gibi HTML varlıkları nasıl işlenir?

XML varsayılan olarak sadece beş adlandırılmış varlık bilir: &amp;, &lt;, &gt;, &quot;, &apos;. Geri kalan her şey — &nbsp;, &mdash;, &pound;, &copy; — sayısal biçime (&#160;, &#8212;, &#163;, &#169;) 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: