unit'in uses kısmına XMLDoc ve XMLIntf ekleyin.
Hata yapmamak için unit'in var kısmından sonra sabitleri ekleyin:
Kod: Tümünü seç
const
PR_cbc = 'cbc';
NS_cbc = 'urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2';
PR_cac = 'cac';
NS_cac = 'urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2';
Kod: Tümünü seç
procedure ChangeNode(parent : IXMLNode; name: String; namespace: String; value: String);
var
node : IXMLNode;
begin
node := parent.ChildNodes.FindNode(name, namespace);
if node = nil then
exit;
if value = '' then
begin
parent.ChildNodes.Remove(node);
exit;
end;
node.Text := value;
end;
Kod: Tümünü seç
procedure TForm1.Button1Click(Sender: TObject);
var
doc : IXMLDocument;
parent : IXMLNode;
faturatipi : IXMLNode;
musteri : IXMLNode;
node : IXMLNode;
new : IXMLNode;
Uid: TGuid;
ETTN: String;
begin
doc := LoadXMLDocument('base.xml');
parent := doc.DocumentElement;
//ETTN
CreateGuid(Uid);
ETTN := GuidToString(Uid);
ETTN := StringReplace(ETTN, '{', '', [rfReplaceAll]);
ETTN := StringReplace(ETTN, '}', '', [rfReplaceAll]);
ChangeNode(parent, 'UUID', NS_cbc, ETTN);
//fatura no
ChangeNode(parent, 'ID', NS_cbc, 'ISS2016000000001');
//fatura tipi
faturatipi := parent.ChildNodes.FindNode('InvoiceTypeCode', NS_cbc);
faturatipi.Text = 'SATIS';
//müşteri
musteri := parent.ChildNodes.FindNode('AccountingSupplierParty', NS_cac);
//Fatura notu ekle
new := doc.CreateElement(PR_cbc + ':Note', NS_cbc);
new.Text := 'Fatura notu';
new.Attributes['languageID'] := 'tr-TR';
parent.ChildNodes.Insert(parent.ChildNodes.IndexOf(faturatipi) + 1 , new);
//Dosyaya kaydet
doc.SaveToFile('sample.xml');
end;
Ek: Delphi 7 ile SOAP web servis kullanmak için: http://cc.embarcadero.com/Item/24535