Zitat von
chris_82:
Wie mach ich das am besten.
Ist die Frage (hm ... der Satz
) noch von Interesse? Wenn ja, dann hier ein kurzes Beispiel für eine List-View mit 5 Spalten (Reportmodus). Ich gehe davon aus, dass du die
XML-Datei bereits geladen hast:
Delphi-Quellcode:
nl := xmldoc.selectNodes('StockHoldings/Stock');
if(nl.length > 0) then
for i := 0 to nl.length - 1 do begin
li := lv1.Items.Add;
node := nl.item[i].selectSingleNode('./@exchange');
if(node <> nil) and (node.Text <> '') then
li.Caption := node.Text
else
li.Caption := 'unbekannt';
for j := 1 to length(SubNodes) do begin
node := nl.item[i].selectSingleNode('./' +
SubNodes[j]);
if(node <> nil) and (node.Text <> '') then
li.SubItems.Add(node.Text)
else
li.SubItems.Add('?');
end;
end;
Vielleicht noch die Variablen:
Delphi-Quellcode:
const
SubNodes : array[1..4]of string =
('name','price','symbol','shares');
var
xmldoc : DOMDocument;
nl : IXMLDOMNodeList;
node : IXMLDOMNode;
i,
j : integer;
li : TListItem;
Und anders herum (sprich: hinzufügen) geht natürlich auch:
Delphi-Quellcode:
node := xmldoc.createElement('Stock');
node.setAttribute('exchange','HEIMLICHE BÖRSE');
xmldoc.documentElement.appendChild(node);
snode := xmldoc.createElement('name');
snode.Text := 'Simmi AG';
node.appendChild(snode);
snode := xmldoc.createElement('price');
snode.Text := '-1';
node.appendChild(snode);
snode := xmldoc.createElement('symbol');
snode.Text := 'SAG';
node.appendChild(snode);
snode := xmldoc.createElement('shares');
snode.Text := 'alle Ordner auf Laufwerk C: ;o)';
snode.setAttribute('type','preferred');
node.appendChild(snode);
ShowMessage(xmldoc.xml);
Auch hier noch die Variablen (und der Hinweis, dass du die
XML-Datei vorher natürlich laden musst!)
Delphi-Quellcode:
var
node,
snode : IXMLDOMElement;
@Chakotay: Es sagt ja niemand, dass es in deinem Tutorial nur um den Movie Organizer gehen soll. Oder du denkst dir halt noch was aus, wo Attribute reinpassen könnten.
Gruß.