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
xml dosya olusturma
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.
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.
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;
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));
Kod: Tümünü seç
with Personel.RECORD_.add do begin
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
@otherside, denemeden cevap yazmıyorum. ben örnek verdiğin xml dosyasını xml binding ile bir unit haline getirdim ve o unitte
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.
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;
iyi çalışmalar.