1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
function nextcell(nc : IXMLNode) : IXMLNode;
var
n : IXMLNode;
begin
result := nil;
n := nc.NextSibling;
if n = nil then exit;
if n.NodeName = 'Cell' then result := n;
end;
procedure TForm1.BLoadClick(Sender: TObject);
var
data1, data2 : string;
scuri : widestring;
noderacine, nodetable,noderow,nodecell,nodesc : IXMLNode;
begin
XMLDoc.LoadFromFile('test.xml');
noderacine := XMLDoc.DocumentElement;
scuri := noderacine.FindNamespaceURI('sc');
nodetable := noderacine.ChildNodes['Worksheet'].ChildNodes['Table'];
noderow := nodetable.ChildNodes['Row'];
while noderow <> nil do
begin
nodecell := noderow.ChildNodes['Cell'];
while nodecell <> nil do
begin
data1 := nodecell.ChildNodes['Data'].NodeValue;
nodecell := nextcell(nodecell);
end;
nodesc := noderow.ChildNodes.FindNode('ILM',scuri);
data2 := nodesc.GetAttributeNS('Type',scuri);
noderow := noderow.NextSibling;
end;
end; |
Partager