AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML [gelöst] XML Attribute - einfacher Zugriff
Thema durchsuchen
Ansicht
Themen-Optionen

[gelöst] XML Attribute - einfacher Zugriff

Ein Thema von matashen · begonnen am 24. Jun 2016 · letzter Beitrag vom 24. Jun 2016
Antwort Antwort
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
484 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#1

AW: XML Attribute - einfacher Zugriff

  Alt 24. Jun 2016, 11:08
Ich will das Attribut Value ändern in Abhängigkeit des Wertes von Attribute Name

Z.B. mal einfach so rausgetippt
und keine Ahnung wie ich das machen muss damit das funktioniert

Delphi-Quellcode:
function read_value(parameterstr:String):string;
begin;
result:=xmlfile.documentelement.ChildNodes('/Asys/Product/Datas/Data[@name="'+parameterstr+'"]');
end;

procedure Change_Value(parameterstr,newvalue:String);
begin;
xmlfile.documentelement.ChildNodes('/Asys/Product/Datas/Data[@name="'+parameterstr+'"]'):=newvalue;
end;

Damit will ich in die XML Struktur zugreifen um die Value auszulesen oder zu ändern
Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.199 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: XML Attribute - einfacher Zugriff

  Alt 24. Jun 2016, 11:26
Ach sooo.

Dein "einfach mal so rausgetippt" ist doch schon deine Lösung: Mittels XPath den gewünschten Knoten finden. Im Beispiel dass dein Dokument so aussieht
Code:
<Asys>
   <Product>
      <Datas>
         <DATA name="val_masksizex" minv="1" maxv="2" value="460000" />
         <DATA name="val_masksizey" minv="1" maxv="2" value="460000" />
         <DATA name="val_maxdistanceerror" minv="1" maxv="2" value="180" />
         <DATA name="val_operationmode" minv="1" maxv="2" value="0" />    
      </Datas>
   </Product>
</Asys>
änderst du hiermit den Wert eines gewünschten Knotens einfach ab:
Delphi-Quellcode:
procedure TForm8.Button1Click(Sender: TObject);
var
   xmlDoc:         IXMLDocument;
   rootNode:      IXMLNode;
   wantedNode:      IXMLNode;
begin
   xmlDoc := LoadXMLData(Memo1.Text);

   rootNode := xmlDoc.DocumentElement;
   rootNode := TXpathHelper.SelectNode(rootNode, '/Asys/Product/Datas');

   wantedNode := TXPathHelper.SelectNode(rootNode, './DATA[@name="val_operationmode"]');
   wantedNode.Attributes['val_operationMode'] := '-99';

   memo2.Text := xmlDoc.DocumentElement.XML;
end;
Ich war so frei den "TXPathHelper" von hier zu nehmen
  Mit Zitat antworten Zitat
matashen

Registriert seit: 29. Jan 2007
Ort: daheim
484 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#3

AW: XML Attribute - einfacher Zugriff

  Alt 24. Jun 2016, 11:30
OK Danke Günther,

dann hat bei meinem Denkansatz ja nur noch der Abschluss gefehlt.
(Herr lass Hirn regnen)

Ich glaub ich brech jetzt ab und gib mir ein Freibad - bei der Hitze arbeitet mein Hirn nimmermehr


nochmal Dankeschön und schönes Wochenende

Matthias
Das Leben ist eines der härtesten.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:07 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