AKDENİZ FORUM


Ana Sayfa Benim Konularim Benim Mesajlarim
Geri git   AKDENİZ FORUM > VBulletin Destek & Webmaster Genel > Php, Asp, Flash, Java, Html
Kayıt ol Yardım Üye Listesi Arama Bugünki Mesajlar Bütün Forumları okunmuş kabul et

Php, Asp, Flash, Java, Html Php, asp, flash, java, html ve tüm web azılım dilleri hakkında bilgi paylaşımı yapabileceğiniz bölüm.

Cevapla
 
Seçenekler
Alt 05-14-2007   #1
BuqRa
Sσƒtwαr€ ΛdministrαtoЯ
 
BuqRa - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2006
Nerden: AMeRiKa
Yaş: 27
Mesajlar: 12.863
Üye No: 3359
Extra Bilgiler
Tecrübe Puanı: 100
Rep Gücü : 15095
Rep Derecesi : BuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond repute
İletişim
Standart bölum 2 > Flash & XML Entegrasyonu

XML 102

XML dosyasını yükletmek ile dertlerimiz sona ermiyor çünkü Flash içine yüklenen XML verisi string veya array değil karmakarışık bir objedir. Bu objeyi dallı budaklı ağaca benzetebiliriz. Bize lazım olan değerler ise o ağacın dallarındaki yani node’lardaki değerlerdir. Bu değerlere ulaşmak için yüklenen XML objesini “parse” etmeliyiz yani birbir ugraşla bir yapıya büründürdüğümüz veriyi tekrardan parçalara ayırmalıyız. Başlamadan önce söyleyeyim birazdan ilk defa duyacağınız terimler ile karşılaşacaksınız. Ama paniklemeyin sakın! Biraz dikkat ile bu ders sonunda XML’e taklalar attıracaksınız.

İlk olarak basit bir XML verisi ile başlayalım:





§ myXML, myXML = new XML() kodu ile tanıtılan yeni bir XML objesidir ve içine myXML.load(“…”) ile yukarıdaki çerçeve içindeki tüm bilgileri yüklenmiştir.

§ Verinin ana gövdesi, yani root’u “kitap” nodu’dur. İşte bu node myXML objesinin ilk çocuğudur yani “myXML.firstChild”.

§ Kitap node’u içinde ise başka bir XML objesi gömülüdür. Nasıl kitap node’u XML objesinin ilk çocuğu ise kitap_adi node’u da kitap objesinin ilk çocuğudur diğer bir değişle myXML.firstChild.firstChild’dır.

§ Son olarak da “Neuromancer” kitap_adi node’a ait bir değerdir yani myXML.firstChild.firstChild. firstChild

Yukarıdaki açıklamaları bir fla dosyasında görmek istiyorsanız xml_102_1.zip dosyasına bakabilirsiniz.

Peki verimiz yine aşağıdaki olsaydı ancak ilk kitap yerine ikinci kitap adına yani “Mona Lisa Overdrive” ismine ulaşmak isteseydik n’olacaktı?

<kitap>
<kitap_adi>Neuromancer</kitap_adi>
</kitap>

<kitap>
<kitap_adi>Mona Lisa Overdrive</kitap_adi>
</kitap>

Kafanızı fazla yormayın çünkü firstChild’i kullanarak buna yapamazsınız. firstChild aslında childNodes’ların ilkidir. Diğer bir değişle firstChild, childNodes[0]’dır. Bu durumda ikinci kitaba şu şekilde ulaşırız:

myXML.firstChild.childNodes[1].firstChild.firstChild

veya

myXML.childNodes[0].childNodes[1].childNodes[0].childNodes[0]



Yukarıdaki örneği bir fla dosyasında görmek istiyorsanız XML_102_2.zip dosyasına bakabilirsiniz.

Biraz daha uzun bir XML listesinde tün kitapları bir array’in içine yüklemeye ne dersiniz? Aşağıda çalışacağımız XML verisi bulunmaktadır ve bizden istenen myFavBooks adlı bir array verisi içine sıra ile sadece kitap isimlerini girmek…

<kitap>
<kitap_adi>Neuromancer</kitap_adi>
</kitap>

<kitap>
<kitap_adi>Mona Lisa Overdrive</kitap_adi>
</kitap>

<kitap>
<kitap_adi>Idoru</kitap_adi>
</kitap>

<kitap>
<kitap_adi>Pattern Recognition</kitap_adi>
</kitap>
<kitap>
<kitap_adi>Count Zero</kitap_adi>
</kitap>

İşin içinde XML verisi olduğu sürece for-next döngüleri sizin en büyük yardımcılarınız olacak. Kodlamaya başlıyorum.

Toplam 5 kitabım ve benim döngü için gereken bu rakamı bir şekilde elimde saymadan kodlama ile Flash’a anlatabilmem gerekiyor. Tıpkı array verileri gibi XML nodelarınında sahip oldukları uzunluk değeri yani length property’si vardır ve bizim aradığımız 5 değerini bu length property’sinden bulacağız. myXML.childNodes.length kodu bize 5 rakamını verecektir.

Burada dikkatinizi childNodes komutuna çekmek istiyorum. ChildNodes, bulunduğumuz referans node’nun bir alt-nodelarının tamamını kapsar. myXML.childNodes dersem; myXML objesi yüklü tüm verilerden oluştuğu için ilk gelen alt-node’lar olan <kitap> nodelarını belirtir. Eğer myXML.firstChild.childNodes demiş olsaydım firstChild ile anlatılan <kitap> node’undan sonra gelen <kitap_adi> node’unu kastetmiş olacaktım.

Bize gerekli olan aşağıdaki gibidir.

myFavBooks= []
For(i=0;i<myXML.childNodes.length;i++){
myFavBooks[i]=myXML.childNodes[i].firstChild.firstChild;
}

Yukarıdaki örneği bir fla dosyasında görmek istiyorsanız XML_102_3.zip dosyasına bakabilirsiniz.

Nasıl, iyi gidiyor muyuz? Umarım zip dosyalarım olaydan kopmamanızı sağlıyordur…Ha gayret, ister inanın ister inanmayın yolu baya bi yarıladık. Şimdi biraz dikkat daha diyorum ve bu tutorial’in son konusu olan “attributes” ile olayı bu seferlik noktalıyorum…lazoid ustamdan gelen bir soru sanırım bu konuyu anlatmak için çok güzel bir örnek olacak..

Soru aynen söyle idi..Bir mesajı istediğimiz font biçimlendirmesi ile XML ile nasıl yollarız..Yani lazoid sadece merhaba demek istemiyor XML ile, olayı aşıp “MERHABA” demek istiyor..bunu hemen şu şekilde yapabilirdik değil mi?

<msg>
<font>courier</font>
<font_size>10</font_size>
<font_color>red</font_color>
<font_weight>bold</font_weight>
<content>merhaba</content>
</msg>
Yukarıdaki kod ile bunu bir sefere mahsus olmak üzere yapabilirsiniz ancak ya mesajda farklı birkaç tane içerik olsaydı nolacaktı. Bu sefer <content> node’u altında birçok <font><font_size><font_color> gibi alt-node’lar açacaktınız ve iş uzadıkça uzayacaktı. İşte bu tip “veriyi tanımlayan veriler” için XML’e attributes kavramını getirmişler. Bakın yukarıdaki kod’u attributes’lar kullanarak nasıl kısalyor ve anlaşılması kolay hale getiriyorum.

<msg>
<content font=”courier” font_size=”10” font_color=”red” font-weight=”bold”>merhaba</content>
</msg>
Sanırım hepinizin aklına CSS (cascading style sheets)’deki stil tanımları geldi. Tıpkısının aynısı!!! Gelin şimdi yukarıdaki mesajı flash’a aktaralım. Bu tanımlayıcı verileri XML içindenı parse etmek yani parçalayabilmek için childNodes yerine attributes terimini kullanacağız.

Font verisine ulaşmak için kullanacağımız kod myXML.firstChild.attributes.font’dur. işte arkadaşlar önünüzde dağ gibi duran XML’in gerçek yüzü. Bu kadar basit…aşağıda bir email mesajınınXML ile kodlanmış hali ve bunun parse etmek için kullanılan Flash kodlarını gösteriyorum.

<email>
<from address=”lazoid@softhome.net”>lazoid </from>
<to address=”kann@ghostmail.net”>kann</to>
<subject>XML hakkında<subject>
<date>01-7-2003</date>
<content font=”courier” font_size=”10”>kann baba, sen bilirsin bu işleri..benim bir derdim var...</content>
</email>

System.useCodePage = true;
//turkce karakterlerin flash tarafından okunmasını saglar!
myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(success) {
if (success) {
//trace("load successful!");
from = myXML.firstChild.childNodes[0].firstChild;
to = myXML.firstChild.childNodes[1].firstChild;
subject = myXML.firstChild.childNodes[2].firstChild;
content.text = myXML.firstChild.childNodes[4].firstChild;
//attribute’lar geliyor…
font = myXML.firstChild.childNodes[4].attributes.font;
font_size = myXML.firstChild.childNodes[4].attributes.font_size;
//

myFormat = new TextFormat();
myFormat.font = font;
myFormat.size = Number(font_size);
content.setTextFormat(myFormat);

} else {
trace("xml dosyası yüklenemedi!!");
}
};
myXML.load("xml_102_4.xml");

font ve font_size adlı değerler XML objesindeki <content> adlı alt-nodun, myXML.firstChild.childNodes[4], attribute’ları olan font ve font_size’ın değerleri almaktadır ve bu değerler text biçimlendirme için devam denen satırlarda kullanılmaktadır.

Yukarıdaki örneği bir fla dosyasında görmek istiyorsanız XML_102_4.zip dosyasına bakabilirsiniz.

İşte arkadaşlar XML budur! Tabi XML’i server’a kaydetmek ve geri veri almak, XML socket’lerine sahip sunucular ile çalışmak gibi ileri konular mevcut ancak her iki tutorial’da anlatılanlar ile artık XML konusuna hakim şekilde çalışmalarınızı sürdürebilirsiniz.


Sen benim en ince dilimde türkümü çaldın..
Sen benim en ücra duygularımı talan ederek beslendin...
Bar köşelerinde tükenip kaldırımlarda ararken kendimi, Gelip sana sığınırdım.,umutlarım bir kez daha sönerdi.
Beni tutma gazabım yakar ellerini, beni tutma hurdahaş olursun.
Yıllardır öyle kırıldım, öyle küstüm ki,bir ah ederim kaskatı kesilir taş olursun.


[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]
BuqRa isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 07-15-2007   #2
Ch€mist
Özel Üye
 
Ch€mist - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2007
Nerden: K.MARAŞ
Mesajlar: 4.126
Üye No: 21833
Extra Bilgiler
Tecrübe Puanı: 31
Rep Gücü : 199
Rep Derecesi : Ch€mist has a spectacular aura aboutCh€mist has a spectacular aura about
İletişim
Standart

paylaşımın için teşekkürler...

CH€MİST

-------------------------------------------------------------------------------------------------------


[ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]






-------------------------------------------------------------------------------------------------------



€F€-


AkdenizForum Toolbar Sitemizi Daha İyi Kullanmak İstiyorsanız Daha Kolaylıkla Sizde İndirin [ÜYE OLMADAN LİNKLERİ GÖREMEZSİNİZ. BURAYA TIKLAYARAK BEDAVA ÜYE OLUN...]
Ch€mist isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Alt 07-16-2007   #3
BuqRa
Sσƒtwαr€ ΛdministrαtoЯ
 
BuqRa - ait Kullanıcı Resmi (Avatar)

Türkiyenin En Kaliteli Bilgi Paylasim Mekani AKdenizForum..
Kullanıcı Bilgileri
 
Üyelik Tarihi: Jul 2006
Nerden: AMeRiKa
Yaş: 27
Mesajlar: 12.863
Üye No: 3359
Extra Bilgiler
Tecrübe Puanı: 100
Rep Gücü : 15095
Rep Derecesi : BuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond reputeBuqRa has a reputation beyond repute
İletişim
Standart

saol önemli deil.
BuqRa isimli üyemiz çevrimdışıdır. (Offline)   Alıntı ile Cevapla
Cevapla

Seçenekler

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-KodlarıKapalı
Gitmek istediğiniz klasörü seçiniz

Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar son Mesaj
Hiren's BootCD 8.7 Türkçe'yi USB Flash Diskinizde Kullanmak. quant£S® Dökümanlar 1 2 Hafta önce 01:23 PM
Hiren's BootCD 8.7 Türkçe'yi USB Flash Diskinizde Kullanmak. BuqRa Dökümanlar 2 02-19-2008 03:25 PM
Macromedia Flash 5.0 BuqRa Php, Asp, Flash, Java, Html 3 01-16-2008 11:06 AM
bölum 1 > Flash & XML Entegrasyonu BuqRa Php, Asp, Flash, Java, Html 2 07-16-2007 09:35 AM
CoffeeCup Flash Menu Builder v3.1 quant£S® ( A-B-C ) 0 07-12-2006 08:43 AM


Saat: 11:59 PM


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Akdeniz forum Web Sitesi Bir Forum sitesi oldugun'dan öterin kullanicilar görüs almadan konularini aninda sitede yayinlayabilmektedir
bu yazılardan dolayı doğabilecek her türlü sorumluluk yazan kullanıcılara aittir,
yine de sitemizde yasalara aykırı unsurlar bulursanız iletişim Yoluyla email adresine bildirebilirsiniz..


Diyet Uzmanı Sesli Chat oyun oyun hileleri oyun adtech ile reklam 2.0 seo yarışması Büyükçöplük.Com fx15
Sitemap
5, 6, 7, 8, 9, 10, 11, 12, 13, 15, 450, 18, 19, 20, 21, 22, 23, 24, 25, 287, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 426, 38, 39, 40, 41, 43, 44, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 75, 258, 82, 83, 86, 87, 88, 89, 342, 260, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 117, 112, 111, 270, 120, 121, 122, 123, 124, 125, 126, 127, 128, 134, 130, 131, 316, 133, 221, 137, 142, 268, 138, 454, 145, 141, 139, 140, 163, 146, 172, 173, 147, 144, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 319, 194, 171, 170, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 195, 196, 197, 318, 198, 199, 220, 205, 206, 207, 208, 211, 212, 213, 214, 215, 216, 217, 218, 222, 226, 228, 230, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 243, 244, 250, 251, 252, 257, 254, 253, 255, 259, 261, 269, 271, 503, 272, 273, 274, 275, 277, 283, 279, 280, 281, 282, 284, 285, 286, 288, 289, 290, 291, 295, 296, 304, 305, 308, 309, 310, 311, 312, 313, 314, 320, 321, 322, 323, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 415, 336, 337, 338, 340, 341, 343, 344, 345, 346, 347, 348, 349, 350, 351, 385, 396, 355, 356, 358, 360, 361, 362, 363, 364, 365, 367, 368, 369, 370, 371, 372, 374, 375, 376, 378, 379, 381, 382, 383, 384, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 397, 398, 399, 400, 401, 402, 403, 404, 405, 407, 408, 409, 410, 411, 412, 413, 414, 416, 417, 418, 419, 421, 422, 423, 424, 425, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 455, 456, 457, 458, 459, 460, 461, 462, 508, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 504, 505, 506, 507, 528, 529, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,