Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   IXMLNode Typ ntElement Werte auslesen (https://www.delphipraxis.net/209508-ixmlnode-typ-ntelement-werte-auslesen.html)

dataspider 15. Dez 2021 10:36

Delphi-Version: 10.3 Rio

IXMLNode Typ ntElement Werte auslesen
 
Hallo

Ich habe eine XML - Datei mit folgendem Inhalt:
<?xml version="1.0" encoding="windows-1252" ?>
<ControlStatements xmlns="http://dev.docuware.com/Jobs/Control" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<Page>
<Field dbName="BEARBEITUNGSSTATUS_" type="Text" value="Intelligent Indexing"/>
<Field dbName="BARCODE" type="Text" value=""/>
<Field dbName="DOK__TYP_" type="Text" value="ER"/>
<Field dbName="LOTUSNOTESNR" type="Text" value="0130A6C8F35BEF70C12587A6003907D1"/>
<Field dbName="ANHANGNAME" type="Text" value="body.html"/>
<Field dbName="BEMERKUNG" type="Text" value=""/>
<Field dbName="MANDANT" type="Numeric" culture="de-DE" value="11"/>
</Page>
</ControlStatements>

Im Testprojekt versuche ich leider erfolglos an die Werte zu kommen:

Delphi-Quellcode:
procedure TFrmMain.AfterConstruction;
Var
  LRoot: IXMLNode;
  LNode: IXMLNode;
  I: Integer;
  s: string;
begin
  inherited;
  XMLDoc.FileName := '0130A6C8F35BEF70C12587A6003907D1_0000000000_ER_body.dwcontrol';
  XMLDoc.Active := True;
  LRoot := XMLDoc.DocumentElement.ChildNodes.Nodes['Page'];
  for I := 0 to LRoot.ChildNodes.Count - 1 do
  begin
    LNode := LRoot.ChildNodes.Nodes[I];
    // wie komme ich an die Werte?
    s := LNode.NodeName;
    s := s;
  end;
end;
In der Schleife bekomme ich auch 7 Nodes mit jeweils NodeName 'Field' und NodeType ntElement.
Wie kann ich jetzt in der Zeile
<Field dbName="DOK__TYP_" type="Text" value="ER"/>
den Value auf "BT" ändern?

Vielen Dank

Frank Reim

Olli73 15. Dez 2021 10:50

AW: IXMLNode Typ ntElement Werte auslesen
 
Delphi-Quellcode:
LNode.Attributes['value'] := 'BT';

dataspider 15. Dez 2021 10:54

AW: IXMLNode Typ ntElement Werte auslesen
 
Zitat:

Zitat von Olli73 (Beitrag 1499144)
Delphi-Quellcode:
LNode.Attributes['value'] := 'BT';

Vielen Dank!

Wollt schon sagen, dass es nicht geht - Jetzt weiss ich - Attribut Name ist Case Sensitiv...:oops:

Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:39 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