xml dosya olusturma

Yapmak istediğiniz işle ilgili doğru bileşeni bulmak için burayı kullanabilirsiniz. Sadece bulmak için, diğer sorular Programlama forumuna lütfen.
Forum kuralları
Bu forum sadece yapacağınız işle alakalı doğru bileşeni bulmak içindir. Şöyle bir şey yapmam lazım, hangi bileşeni kullanıyım diyorsanız, doğru yerdesiniz.
Cevapla
Kullanıcı avatarı
otherside
Üye
Mesajlar: 65
Kayıt: 11 Mar 2005 02:48
Konum: istanbul

xml dosya olusturma

Mesaj gönderen otherside »

merhaba
bu konu bi kaç kez konusulmus formada ama tam cevap olmadı bana yada beceremedım bazı olayları yenıden soruyum dedım
benim sorum sole bi xml dosyam var
<?xml version="1.0"?>
<PERSONELBILGILERI>
<SATICI>001</SATICI>
<MUSTERI>001</MUSTERI>
<KEY>022</KEY>
<RECORD>
<KIMLIKNUMARASI>4555555555</KIMLIKNUMARASI>
<VERGIKIMLIKNUMARASI>a</VERGIKIMLIKNUMARASI>
</RECORD>
<RECORD>
<KIMLIKNUMARASI>111111111</KIMLIKNUMARASI>
<VERGIKIMLIKNUMARASI>ab</VERGIKIMLIKNUMARASI>
</RECORD>
</PERSONELBILGILERI>
xml data bindigle baglantı sını kurudum ve xml dosyayı yazdırıyorum recordları cogaltamıyorum içerikleri dbden cekıyorum 50 tane record varsa bile sadece bıtane gelıyo oda db nın son kaydı gelıyo yadıgım kodda asagıda
var i:integer;
begin
Personel:=NewPERSONELBILGILERI;
Personel.SATICI:='001';
Personel.MUSTERI:='001';
Personel.KEY:='022';
ADOQuery1.First;
for i:=0 to ADOQuery1.RecordCount-1 do begin
Pesonel.RECORD_.KIMLIKNUMARASI:=ADOQuery1Sicno.Text;
Personel.RECORD_.VERGIKIMLIKNUMARASI:=ADOQuery1Ad.Text;
Personel.RECORD_.NextSibling;//bunu yazıp yazmamın bı farkı olmuyo
ADOQuery1.Next;
XMLDocument := LoadXMLData(FormatXMLData(personel.XML));
end;
XMLDocument.Version := '1.0';
//XMLDocument.Encoding := 'iSO-8859-9';
XMLDocument.SaveToFile('Personell.xml');
XMLDocument:=nil;
bana donen sonuc
<?xml version="1.0"?>
<PERSONELBILGILERI>
<SATICI>001</SATICI>
<MUSTERI>001</MUSTERI>
<KEY>022</KEY>
<RECORD>
<KIMLIKNUMARASI>4555555555</KIMLIKNUMARASI>
<VERGIKIMLIKNUMARASI>a</VERGIKIMLIKNUMARASI>
</RECORD>
</PERSONELBILGILERI>
herkese kolay gelsın
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

Kod: Tümünü seç

for i:=0 to ADOQuery1.RecordCount-1 do begin 
Pesonel.RECORD_.KIMLIKNUMARASI:=ADOQuery1Sicno.Text; 
Personel.RECORD_.VERGIKIMLIKNUMARASI:=ADOQuery1Ad.Text; 
Personel.RECORD_.NextSibling;//bunu yazıp yazmamın bı farkı olmuyo 
ADOQuery1.Next; 
XMLDocument := LoadXMLData(FormatXMLData(personel.XML)); 
end; 
bu kısmı

Kod: Tümünü seç

for i:=0 to ADOQuery1.RecordCount-1 do begin
 with Personel.RECORD_.add do begin
    KIMLIKNUMARASI:=ADOQuery1Sicno.Text; 
    VERGIKIMLIKNUMARASI:=ADOQuery1Ad.Text; 
  end;
ADOQuery1.Next; 
end;
XMLDocument := LoadXMLData(FormatXMLData(personel.XML)); 
olarak değiştirin.
Kullanıcı avatarı
otherside
Üye
Mesajlar: 65
Kayıt: 11 Mar 2005 02:48
Konum: istanbul

Mesaj gönderen otherside »

Kod: Tümünü seç


 with Personel.RECORD_.add do begin
    


olarak değiştirin.[/quote]
bu kısmını kabul etmıyo arkadasım record un add methodu bulunmuyo addchild die baska methodu var bunun da aldıgı parametreler farklı
kolay gelsin
t-hex
Kıdemli Üye
Mesajlar: 531
Kayıt: 18 Mar 2005 02:45
Konum: İstanbul/Antalya
İletişim:

Mesaj gönderen t-hex »

@otherside, denemeden cevap yazmıyorum. ben örnek verdiğin xml dosyasını xml binding ile bir unit haline getirdim ve o unitte

Kod: Tümünü seç

{ IXMLRECORDTypeList }

  IXMLRECORDTypeList = interface(IXMLNodeCollection)
    ['{EB52884E-0D3B-4847-9979-DF46450724D4}']
    { Methods & Properties }
    function Add: IXMLRECORDType;
    function Insert(const Index: Integer): IXMLRECORDType;
    function Get_Item(Index: Integer): IXMLRECORDType;
    property Items[Index: Integer]: IXMLRECORDType read Get_Item; default;
  end;
olarak ekledi record tipini ki öyle yapmalıydı zaten. Sanırım sen bu aşamada bir hata yaptın. bir daha dene derim.

iyi çalışmalar.
Cevapla