XML yazarken, el yazması, veya PHP gibi SimpleXML gibi bir jeneratör kullanmak daha iyidir?

10 Cevap php

Ben normalde elle böyle xml yazdım:

<tag><?= $value ?></tag>

Böyle SimpleXML gibi araçlar bulundu, ben o yerine kullanıyor olmalıdır? Böyle bir aracı kullanarak bunu yapmanın avantajı nedir?

10 Cevap

İyi XML araçları sonuç XML dosya düzgün kullandığınız DTD karşı doğrular sağlayacaktır.

İyi XML araçları da etiketleri tekrar yazarak bir sürü kaydedebilirsiniz.

XML küçük bir bit ile ilgili iseniz, elle yapıyor az zarar (Eğer yazım hataları önleyebilirsiniz sürece) var. Ancak, büyük belgelerle sık şemaya karşı doc doğrulamak ve yazım karşı koruyabilirsiniz bir editör kullanarak daha iyiyiz.

Jeneratör kullanın.

Bir jeneratör kullanmanın avantajı tutarlı biçimlendirme var ve yağ-parmak bir dirsek veya teklif, ya da bir şey kodlamak için unutma riski kalmamasıdır. Aksi takdirde sağlanması için önemli testler yoksa bu hataları, çalışma zamanı kadar bulunamadı olmayacaktır çünkü bu çok önemlidir.

Büyük bir XML ou yanlış etiketleri yazabilirsiniz ve bir hata nedenini bulmak zor olabilir çünkü el yazma, her zaman iyi bir uygulama değildir. Yani XML dosyaları oluşturmak için XML ayrıştırıcıları kullanmanızı öneririm.

iyi bir XML jeneratör kullanarak büyük ölçüde yağ-parmak, dikkat lapse, ya da başka ne olursa olsun, insan zaaf nedeniyle potansiyel hataları azaltacaktır. seçim için makine yardımı birkaç farklı düzeylerde, ancak vardır:

  1. en azından, dizim ve otomatik girinti yapan bir programcı metin düzenleyicisi kullanın. Sadece metin farklı bir beklediğinizden daha renkli, ya da beklediğiniz şekilde sıraya olduğunu fark, aksi takdirde kaçırmış olabilir bir yazım hatası seni devrilebilir.

  2. daha iyisi, XML veri yapısını dönüştürmek yerine, bir adım geri almak ve tercih ne olursa olsun dil bir veri yapısı olarak XML yazmak. Perl size böyle XML::Simple küçük işler ya heftier XML::Generator için hafif olarak modülleri verir; XML::Simple sağlamalarının bir standart Perl karma içine içerik düzenlenmesi ve uygun yöntemi ile çalışan sadece bir konudur kullanarak.

-Steve

Sen DOM extenstion karşı koduna oldukça hantal olabilir hangi kullanabilirsiniz. Benim kişisel görüşüm yerden XML belgeleri yazmak için en etkili yolu XMLWriter extension o PHP ile gelir ve son sürümlerinde varsayılan olarak etkin olmasıdır.

$w=new XMLWriter();
$w->openMemory();
$w->startDocument('1.0','UTF-8');
$w->startElement("root");
    $w->writeAttribute("ah", "OK");
    $w->text('Wow, it works!');
$w->endElement();
echo htmlentities($w->outputMemory(true));

Hızlı bir sorun olabilir ... el yazısı hızlı bir yeri olabilir.

Her zaman bir tür aracını kullanın. XML çok karmaşık olabilir, ben PHP adamlar hackey az malzeme ile çalışmaya alışık olduğunu biliyorum, ama. NET dünyada büyük bir kod koku birisi XML oluşturmak için System.XML kullanmak değilse.

Dize manipülasyon her türlü aracılığıyla XML üreten hatalar da koduna almak için kapıyı açar. $ Değer bir işareti içeriyorsa yayınlanmıştır son derece basit bir örnek, örneğin, iyi biçimlendirilmiş XML üretmek değildir.

XML kenar durumlarda bir sürü değildir, ama onları işlemek için kendi kod yazmak için zaman kaybı olduğunu yeterince vardır. (Eğer bunları işlemek yoksa Ve, kod beklenmedik bir gün başarısız olur. Kimse bunu istiyor.) Herhangi bir iyi XML aracı otomatik olarak bu davalarını olacaktır.

Tutulma XML araç gerçekten çok yararlıdır. Sadece yeni bir xml şema ve belge oluşturmak ve kolayca grafiksel araçların çoğunu kullanabilirsiniz. Ben şemalar çalışmak nasıl bir önceki anlayış kullanım olacağını işaret etmek istiyorum yok.