PDA

View Full Version : سوال: xml export to database



saeidsg
شنبه 10 تیر 1396, 13:41 عصر
با عرض سلام می خواستم ببینم کسی می تونه کمک کنه این اطلاعات از وب سرویس گرفتم چطوری وارد دیتا بیس کنم
<tb_NameF>
<Item>
<ID>1</ID>
<Name>علی</Name>
</Item>
<Item>
<ID>2</ID>
<Name>محمد</Name>
</Item>
<Item>
<ID>3</ID>
<Name>مجید</Name>
</Item>
<Item>
<ID>4</ID>
<Name>محسن</Name>
</Item>
</tb_NameF>

s_sajad
شنبه 10 تیر 1396, 14:21 عصر
با سلام.
مشکل شما Parse داده XML است.
برای Parse :



var doc: IXMLDocument;
Item: IXMLNode;
ID: Integer;
Name: String;
begin
doc := LoadXMLData(xmlString);
Item := doc.DocumentElement.ChildNodes['Item'];
ID := StrToInt(Item.ChildNodes['ID'].Text);
Name := Item.ChildNodes ['Name'].Text;
end;
میتوانید از کد بالا استفاده کنید و داده هایی که از XML تبدیل به string شده را به دیتابیس منتقل کنید.
در ضمن یک راه دیگر هم وجود دارد که استفاده از XML Data Binding Wizard است که در http://docwiki.embarcadero.com/RADStudio/XE2/en/Using_the_XML_Data_Binding_Wizard به صورت کامل تشریح شده است.

saeidsg
شنبه 10 تیر 1396, 16:12 عصر
ممنون از راهنمایی که کردید ولی فقط اولین ایتم می اره بقیه چطوری باید دسترسی داشته باشیم

s_sajad
شنبه 10 تیر 1396, 18:28 عصر
بابت تاخیر عذر خواهم.یک شبه کد را براتون ارسال میکنم اما مطمئن نیستم صد در صد نتیجه ایی حاصل شود:




for i:=0 to doc.DocumentElement.ChildNodes['tb_NameF'].ChildNodes.Count-1 do
begin
ItemNode := doc.DocumentElement.ChildNodes['tb_NameF'].ChildNodes[i];
ShowMessage(ItemNode.ChildNodes['ID'].Text);
ShowMessage(ItemNode.ChildNodes['Name'].Text);
end;
end;