Açıkça kod vermediğimiz için sen bizim kusurumuza bakma. :) Ayrıca hepimiz farklı ölçülerde de olsa deneyimsiziz.
XML elemanının nelerden oluştuğuna bakalım:
'...'
Genel olarak:
'<etiket nitelik="degeri" baska-nitelik="onun degeri" ...>...'
-
XML elemanlarında "etiket" diye bir kavram görülüyor; o kavramı ifade etmek için string uygundur (ilgisiz olarak, burada dstring şart değil çünkü bu etiketi olduğu gibi kullanacağız; karakterlerine teker teker erişme işimiz yok. Ama istenirse dstring de olabilir tabii.)
-
Ayrıca string="string" düzeninde nitelikler var ve bunlardan çok sayıda bulunabiliyor
-
Son olarak, <etiket ...> biçimindeki açma bölümü ile biçimindeki kapama bölümü arasına belirsiz sayıda başka XML elemanları gelebilir. Eğer kendi türümüzün ismi XmlElement ise, onları da bir XmlElement dizisi olarak ifade edebiliriz
Aşağıdaki sınıfı derlemedim bile; hataları olabilir. Ama kafamda canlanan türü gösteriyor.
toString() işlevi de bu elemanın dizgi halindeki gösterimini üretebilir:
class XmlElement
{
string tag;
string[string] attributes;
XmlElement[] elements;
override string toString() const
{
/*
1. Açma parantezi; örneğin <form
2. Nitelikler; örneğin method="POST" action="..."
3. Açma parantezinin kapatılması: ...>
4. Form'un içindeki diğer elemanlar; örneğin
<form ...><B>Koyu metin</B>
<P>Benim paragrafım.</P>
...
5. Kapama parantezi; örneğin ...</form>
*/
}
}
Kadir Can, sence mantıklı mı? Kafana yatmayan yerlerini konuşalım. :)
Bunu veya benzeri bir tür kullanırsak ona addElement() gibi bir üye işlev veririz ve kendi alt elemanlarını öyle ekleyebiliriz:
benimEleman.addElement(başkaEleman);
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]