XSLT karakter kodlaması - varlık tanımlı değil

4 Cevap php

Ben XSLT kullanarak ve büyük başarı yaşıyorum, sadece birkaç sorun var.

Warning: DOMDocument::loadXML() [domdocument.loadxml]: Entity 'Aring' not defined in Entity

Temelde bazı standart olmayan karakterler için ben hata yukarıdaki türünü alıyorum. Gerçekten bir kez ve herkes için bu düzeltmek istiyorum. Ben karakter eşleme hakkında biliyorum ama ben belki özel karakterlerin her olası birleşimini basılı yazamıyor.

4 Cevap

this one gibi, varlıkları tanımlayan bir DTD içerir

İşte post at PHP.net başarıyla bunu eklemek için nasıl ipuçları budur.

Yukarıda DTD muhtemelen sizi kapsamalıdır; Å bir HTML varlıktır ve DTD şeyden HTML 4.01 varlıkları kapsar.

Bir DTD olmadan kullanıldığında, XML, sadece adında kişilerin çok sınırlı sayıda destekler. (<, >, &, ve ", hatırladığım kadarıyla.) Kullanmadan diğer out-of-charset karakterler eklemek için DTD, sadece yerine bir sayısal varlık ile onlara bakın.

Örneğin, Å Unicode karakter U 00 C5, "Halka yukarıda Latin harf A" karşılık gelir. Bu nedenle belgenize dahil etmek için Å (baştaki sıfırlar ihmal edilebilir) kullanabilirsiniz. Windows üzerinde iseniz, Karakter Haritası aracı: büyük bir yardım (XP> Programlar> Donatılar> Sistem Araçları başlatın).

Å Bir standart XML varlık değildir. XML belgesinde bunu desteklemek için, XML ayrıştırıcı DTD-farkında olması gerekir ve belge bu varlık tanımlar ya da bu varlık tanımlayan bir DTD belirtir ya bir DOCTYPE bildirimi olmalıdır. Bir XHTML DTD, örneğin, Å tanımlar Yani & # xC5 için.

Bunun zaten farkında olmayan bir adlandırılmış varlık gördüğünde DOM XML ayrıştırıcı bir hata atmak ve ayrıştırıcı ya DTD-farkında değil ya da bu varlık ne demek için hiçbir DOCTYPE bildirimi olmaması için bu doğru. XML kendisi kişiler <, >, amp, ve " tanımlar. Bu güvenle herhangi bir XML uygulaması kullanılabilir adlandırılmış varlıklardır.

Eğer belgeyi kendiniz yazıyorsanız, o zaman sadece Å kullanmayın - Sadece literal karakteri kullanmak, Unicode kullanarak varsayarak, bunun yerine ya da bir sayısal eşdeğerini kullanın.

Başka adında bir varlık içeren diğer insanlardan XML belgeleri ayrıştırmak edebilmek için, ve belgeler Frank XML sonra fix the document yourself by inserting doğru DOCTYPE'ta gerekir belirtildiği gibi o, bir DOCTYPE yoksa ihtiyacınız varsa beyanı.

HTML olarak belgeyi davranır ve bu varlıklar üzerinde yolculuk değil hangi bir DOMDocument::loadHTML 'işlevi de olduğunu unutmayın.