Einzelnen Beitrag anzeigen

Der schöne Günther

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

AW: XML Attribute - einfacher Zugriff

  Alt 24. Jun 2016, 12: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