![]() |
XML Zugriff auf Datei und schreiben (Knoten Attribute...)
Code:
Das ist ein Beispielcode aus der Delphi hilfe, komme irgendwie nicht klar damit...was reinzuschreiben oder auszulesen...muss ganze teile eines xml dokuments auslesen und in ein anderes einfügen, dabei muss ich noch die tags ändern bzw eine andere struktur zuweisen.
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<StockHoldings> ***<Stock exchange="NASDAQ"> ******<name>Borland</name> ******<price>15.375</price> ******<symbol>BORL</symbol> ******<shares>100</shares> ***</Stock> ***<Stock exchange="NYSE"> ******<name>Pfizer</name> **** *<price>42.75</price> ******<symbol>PFE</symbol> ******<shares type="preferred">25</shares> ***</Stock> </StockHoldings Wie mach ich das am besten. hab es zwar geschafft etwas reinzuschreiben oder auch auszulesen, nur nicht an den stellen wo ich wollte, benutze den parser msxml und versuch über das documentelement objekt an die knoden und kinder hernazukommen. Mir wär sicher erst mal geholfen wenn ich mal n beispielcode für obiges bsp hätte wie ich das die knoten und attribute, texte auslese oder welche einfüge. |
ersten Erfolg zu vermelden!
OK, auf den ersten Knoten "StockHoldings" kann ich zugreifen, auf den zweiten "Stock" auch, aber wie greif ich auf die weiteren und auf die attribute zu?
|
Re: XML Zugriff auf Datei und schreiben (Knoten Attribute...
hallo,
bei den Tutorials gibts ein XML-Tut, das sollte dir helfen. Das mit den Attributen findest dort nicht. Das versuche ich auch grad rauszufinden. grüße, daniel |
Re: XML Zugriff auf Datei und schreiben (Knoten Attribute...
Hiermit kannst du dir den Wert des Attributs Attributname auslesen:
Delphi-Quellcode:
damit kannst du den Wert eines Attributs ändern bzw es neu anlegen und gleich mit nem Wert versehen:
.AttributeNodes['Attributname'].Text
Delphi-Quellcode:
.Attributes['Attributname']
|
Re: XML Zugriff auf Datei und schreiben (Knoten Attribute...
Zitat:
|
Re: XML Zugriff auf Datei und schreiben (Knoten Attribute...
Hi,
Beitrag gelesen und zur Kenntnis genommen. ;) Chris PS: Mir fehlen nur noch Gründe warum man Attribute verwenden soll... :twisted: |
Re: XML Zugriff auf Datei und schreiben (Knoten Attribute...
Zitat:
Delphi-Quellcode:
Vielleicht noch die Variablen:
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;
Delphi-Quellcode:
Und anders herum (sprich: hinzufügen) geht natürlich auch:
const
SubNodes : array[1..4]of string = ('name','price','symbol','shares'); var xmldoc : DOMDocument; nl : IXMLDOMNodeList; node : IXMLDOMNode; i, j : integer; li : TListItem;
Delphi-Quellcode:
Auch hier noch die Variablen (und der Hinweis, dass du die XML-Datei vorher natürlich laden musst!)
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);
Delphi-Quellcode:
@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.
var
node, snode : IXMLDOMElement; Gruß. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz