PHP ile XML belgeleri oluşturma

İçindekiler
Bu belgelerin nasıl oluşturulacağının teknik kısmına girmeden önce, bir dosyanın ne olduğunu anlamalıyız. XMLve gerçek ve güncel uygulamaları nelerdir, bu şekilde bu bölümde edinebileceğimiz bilgileri çok daha fazla takdir edebileceğiz.
XML dosyası nedir?Elbette çoğunuz bunun bir dosya olduğunu zaten biliyorsunuzdur. XMLAncak bilmeyenler veya bu terimi ilk defa görenler için kavramını biraz açıklayacağız. XML çok benzer bir işaretleme ve etiketleme dilidir HTML bu, içeriği bir belgede düzenlememizi sağlar. Etiketlerden ve varlıklardan oluşur ve onu oluştururken birkaç kurala uymalıyız.
kesinlikle tarif ettiğimi düşüneceksiniz. HTML ayrıca ve neden yeni bir dil oluşturmak yerine ikincisini kullanmıyoruz, çünkü sadece XML daha katı ve daha özelleştirilebilir, bu yüzden kullanımı çok daha esnek ve anlaşılması daha kolay. üzerindeki etiketler HTML standartınızda zaten tanımlanmışsa, bunun yerine bir XML Etiketler tarafımızca dil kuralları çerçevesinde oluşturulur.
Eğitimin başında, en iyi bilinen uygulamalardan birinden bahsettik. XML ve içeriği uygulamalar tarafından tüketilebilecek şekilde düzenlemektir, temel olarak gerekli olan budur. Bir belge düzenlerken XML denilen şeyi yapabiliriz ayrıştırmak, bu, dosyayı okumaktan başka bir şey değildir ve eğer standarda uyuyorsa yapısının ne olduğunu bilebileceğiz ve böylece söz konusu içeriği programımızda işleyebileceğiz.
Gerçek bir bağlamda, XML aracılığıyla veri iletmek için kullanılabilir. internet servisi veya verileri geri yüklemek ve içe aktarmak için Veri tabanı. Gördüğümüz gibi bir taşınabilirlik formatıdır, yani verileri bir platformdan diğerine taşımaktır. Aynı platform içinde de çalışır; örneğin, her etiketin, uygulamamızın yeterli davranış oluşturmak için okuduğu parametrelere karşılık geldiği bir yapılandırma dosyası.
Her ne kadar son birkaç yılda format JSON web ortamlarında çok fazla popülerlik kazanmıştır ve tartışmasız son zamanlarda popülerlik kazanmaktadır. XML, gerçekte öyle değildir, çünkü her birinin kendi alanı vardır, avantajı JSON yerli mi Javascript ve bu dille çalışmanın yeni yolları sayesinde, dönüştürme pratik olarak gereksizdir.
Ancak masaüstü uygulamaları, sunucu dilleri dışındaki diğer ortamlarda Javascript ve uzun süredir piyasada olan uygulamalar, XML geçerli ve yaygın olarak kullanılan bir seçenektir.
Her zaman olduğu gibi, her şey ihtiyaçlarımıza bağlı, ikisinin de olmadığını söyleyebiliriz. JSON hiç biri XML kötüler, her birinin kapsamı ve amacı var, yani kullanmak istiyorsak XML ve birisi bize modası geçmiş olduğumuzu söylüyor, sadece ihtiyaçlarımız için tamamen geçerli olduğunu bilin.
Daha önce bir dosyayı açıkladığımız gibi XML Etiketlerden oluşur, ancak doğru yorumlanabilmesi için bir başlığa sahip olması ve ardından içerikle başlaması gerekir. Başlık olarak bilinir DTD veya Belge Türü Tanımı, belgenin tür tanımı olarak çevrilebilir ve ardından içerik şema veya şema İspanyolca.
DTD ne yapar?NS DTD bilgiyi verecek olan kişidir. ayrıştırıcı ne tür hakkında XML olduğunu ve içinde şema Belgemiz için yaptığımız içeriğin gideceği yer burasıdır.
Aşağıdaki resimde uygulama geliştirme ortamımızda sahip olduğumuz bir test belgesinin nasıl göründüğünü göreceğiz:

fark ettik ki, XML metinden başka bir şey değildir, bu nedenle uygulamamız içinde basit rutinler yapabiliriz. PHP bir dosyaya karşılık gelen içeriği oluşturmak için XML, ancak dosyanın başlığını görürsek XML dilin açılış etiketleriyle aynı etiketlere sahiptir, yani, yani bir yaparsak dışarı attı basit içerik XML sözdizimi hatası alacağız.
kullanarak bunu kolayca düzeltebiliriz. başlık ve değiştirmek MIME Türü text / xml ile bu, tercümanı yapacak PHP artık içeriğimizin başlığını bir hata olarak kabul etmeyin XML üretiyoruz demektir. Küçük örneğimizi oluşturmak için kullanacağımız kodu aşağıda görelim:
 "Dövüş Kulübü", 'yazar' => "Chuck Palahniuk"), dizi ('başlık' => "Dünya Savaşı Z", 'yazar' => "Max Brooks",)); foreach ($ kitap olarak $ kitap) {echo "\ n"; echo "{$ kitap ['başlık']} \ n"; echo "{$ kitap ['yazar']} \ n"; yankı "\ n \ n"; }?> var13 -> 

Burada yaptığımız ilk şeyin, belgenin başlığını şu şekilde oluşturmak olduğunu görüyoruz. başlık, bu bizim başlangıç ​​etiketimizi yerleştirmemize izin verecek XML sözdizimi hatalarını yükseltmeden PHP, sonra kodun dışına kök etiketimizi yerleştiririz. şema, bu durumda kitaplık.
Daha sonra, kitap dediğimiz birkaç elementten oluşan küçük bir dizi oluşturuyoruz, burada manuel bir şey olmasına rağmen önemli olan, bunun sonucunda bunu yapabileceğimizi görebilmemizdir. Veri tabanı Örneğin. Son olarak, dizimizi gözden geçirir ve yazdırırız, her zaman etiketlere saygı gösteririz, böylece XML iyi şekillendirilmiştir.
Sonunda bunu test sunucumuzda çalıştırdığımızda tarayıcıda aşağıdakine benzer bir şey elde edeceğiz:

BÜYÜT

İyileştirme işlemeYukarıdakiler oldukça iyi çalışsa ve çok faydalı olsa da, hatalara çok açık, bu yüzden yardımımız için belgeler oluşturmamıza izin veren birkaç kitaplığımız var. XML dilin en yaygın tanımlarından, bunun için kütüphanemiz var GÜNEŞ ve kitapçı SimpleXML, her ikisi de belge oluşturmamıza izin verir XML yapmanın yanı sıra ayrıştırmak bunların.
Aşağıdaki örnekte bir dosya alacağız XML bu bizim dizinimizde, işleri kolaylaştırmak için önceki örnekte oluşturulan belgeyi kaydedebiliriz ve onu arayacağız php_crear_xml.xml, Uzantıyı değiştirerek artık başlığı yazdırmak için PHP kullanamayacağımızı göz önünde bulundurarak, bunu görmenin kolay bir yolu XML tam basmak içindir CTRL + sen ve biz de aynısına sahip olacağız. Test dosyamızı aldıktan sonra, aşağıdaki kodu kullanarak bunu gerçekleştireceğiz. ayrıştırmak dosyadan.
yükle ("örnek1.xml"); işlem ($ ayrıştırıcı-> belgeElement); işlev işlemi ($ düğümü) {foreach ($ düğüm-> $ alt öğesi olarak childNodes) {if ($ alt-> düğümType == XML_TEXT_NODE) ​​​​{echo "

". $ çocuk-> nodeValue."

";} else if ($ alt-> nodeType == XML_ELEMENT_NODE) ​​​​{process ($ alt);}}}?> var13 ->

Kodda şu tipte bir nesne oluşturduğumuzu görüyoruz. DOMDbelge, bu bize kitapçıyı getirecek GÜNEŞ yorumlayabilmek için XML, daha sonra yöntemle yük () dosyayı yüklüyoruz XML rotamızda sahip olduğumuz ve ardından işlevi çağırdığımız işlem() bu, yüklenen belgeyi gözden geçirmemize izin verecek olandır.
Son olarak fonksiyonumuzu tanımlıyoruz, burada her bir düğümden geçiyoruz ve sonra eğer bir element ise koşullu yapıyoruz. XML Fonksiyonu çağırırız, aksi takdirde metin ise yazdırırız, bununla içeriği elde edebiliriz. XML Sorun yok.
Bu yöntemin ve bu kitaplığın tek kusuru, sunucuda gereken bellek miktarıdır, yani büyük bir dosya olsaydı XML sunucumuzun onu işlemesi çok zor olurdu.

kütüphanemiz de var SimpleXML dosyaları oluşturabilmek ve işleyebilmek için XML, kullanımı kütüphaneye benzer bir şeydir GÜNEŞBununla birlikte, uygulaması ve karmaşıklığı açısından daha sınırlıdır, bu biraz daha büyük olmasına rağmen, bu nedenle kodumuz daha karmaşık olabilir.
Bu kütüphaneyle ilgili ilginç olan şey, bizim ile bir nesnenin yaratılmasıdır. XML özelliklerine doğrudan erişebileceğimiz ve böylece onlarla çalışabileceğimiz. Etiketlere nasıl erişebileceğimizi aşağıdaki kodda görelim vasıf elimizdeki her kitaptan XML testler.
$ kitap olarak kitap) {echo $ kitap-> başlık. "
";}?> var13 ->

Kod biraz kısa görünse de, yaptığımız şey yüklenen dosyadan bir nesne oluşturmak ve bir her biri için düğümlerinin her biri ve böylece etiketinin içeriğine basit bir şekilde erişin. Bununla tarayıcıda aşağıdakileri elde ederiz:

Bununla bu öğreticiyi sonuçlandırıyoruz, başarıyla bir dosya oluşturduk XML ve bu dosyaları okuyabilmenin iki farklı yolunu öğrendik, daha karmaşık dosyalarla pratik yapmak, bilgimizi gerçek hayattaki bir uygulamada uygulamaya hazır ve uygulayabilmemiz için önemlidir.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave