XML の各ノードは、XML に表示されるIXMLNode
のIXMLDocument
と同じ階層で、 として表されます。ノードがインデントされた XML を最初に見て、階層をより明確に確認できるようにすると役立ちます。
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">
<statusInfo>
<vendorClaimID>BRADY12478018AETNA</vendorClaimID>
<statusID>0</statusID>
<statusDescription>Unvalidated</statusDescription>
</statusInfo>
</string>
階層を理解すれば、そのためのコードを書くことができます:
var
doc: IXMLDocument;
statusInfo: IXMLNode;
vendorClaimID: String;
statusID: Integer;
statusDescription: String;
begin
doc := LoadXMLData(xmlString);
statusInfo := doc.DocumentElement.ChildNodes['statusInfo'];
vendorClaimID := statusInfo.ChildNodes['vendorClaimID'].Text;
statusID := StrToInt(statusInfo.ChildNodes['statusID'].Text);
statusDescription := statusInfo.ChildNodes['statusDescription'].Text;
end;
または:
var
doc: IXMLDocument;
statusInfo: IXMLNode;
vendorClaimID: String;
statusID: Integer;
statusDescription: String;
begin
doc := LoadXMLData(xmlString);
statusInfo := doc.DocumentElement.ChildNodes['statusInfo'];
vendorClaimID := VarToStr(statusInfo.ChildValues['vendorClaimID']);
statusID := StrToInt(VarToStr(statusInfo.ChildValues['statusID']));
statusDescription := VarToStr(statusInfo.ChildValues['statusDescription']);
end;
Delphi の XML データ バインディング ウィザードを使用すると、XML を解析するインターフェースが生成されます。
var
doc: IXMLDocument;
statusInfo: IXMLstatusInfoType;
vendorClaimID: String;
statusID: Integer;
statusDescription: String;
begin
doc := LoadXMLData(xmlString);
statusInfo := Getstring(doc).statusInfo;
vendorClaimID := statusInfo.vendorClaimID;
statusID := statusInfo.statusID;
statusDescription := statusInfo.statusDescription;
end;