Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FreePascal Wert in XML finden? (https://www.delphipraxis.net/205857-wert-xml-finden.html)

Klaus01 30. Okt 2020 06:59

AW: Wert in XML finden?
 
Delphi-Quellcode:
procedure TForm1.Button3Click(Sender: TObject);
var
  Doc: TXMLDocument;
  RootNode, ParentNode, DatenNode, VarElemen, ElementNode, ItemNode, TextNode: TDOMNode;
begin
  try
    ReadXMLFile(Doc, 'Muster.xml');
    // tue etwas mit dem XMLDoc
    WriteXMLFile(Doc, 'MusterNeu2.xml')
  finally
    Doc.Free;
  end;
end;
wenn Du nach diesem Prinzip vorgehst, liest Du aus Muster.xml ein machst Änderungen und speicherst unter MusterNeu2.xml ab.
Dann liest Du beim nächsten ButtonClick wieder Muster.xml ein (da sind keine Änderungen drin) machst wieder Änderungen und speicherst (überschreibst) MusterNeu2.xml. Damit sind die ersten Änderungen weg.

Grüße
Klaus

LPascal 12. Nov 2020 12:21

AW: Wert in XML finden?
 
Kam jetzt wieder dazu hier weiterzumachen. Und es hat alles super geklappt, noch mal an der Stelle vielen Dank!

Noch eine Frage hätte ich, ich möchte den Knoten <Daten> löschen, versuche ich auch, aber irgendwas mache ich falsch, und sehe nicht was.

Code:
<PDB>
  <Header>
    <Daten>
      <Personen>
        <Anrede>Herr</Anrede>
        <Vorname>Otto</Vorname>
        <Nachname>Müller</Nachname>
        <Alter>45</Alter>
      </Personen>
   </Daten>
  </Header>
</PDB>
Delphi-Quellcode:
    DatenNode := Doc.DocumentElement.FindNode('PDB').FindNode('Header');
    DatenNode.RemoveChild(DatenNode);

Klaus01 12. Nov 2020 12:28

AW: Wert in XML finden?
 
Delphi-Quellcode:
DatenNode := Doc.DocumentElement.FindNode('PDB').FindNode('Header');
    DatenNode.RemoveChild('Daten');
Wenn Du den Knotennamen angibst?

Grüße
Klaus

LPascal 12. Nov 2020 12:40

AW: Wert in XML finden?
 
Zitat:

Zitat von Klaus01 (Beitrag 1477207)
Delphi-Quellcode:
DatenNode := Doc.DocumentElement.FindNode('PDB').FindNode('Header');
    DatenNode.RemoveChild('Daten');
Wenn Du den Knotennamen angibst?

Grüße
Klaus

Ja, das war auch meine Idee, aber RemoveChild erwartet als Parameter TDOMNode und keinen String.

Klaus01 12. Nov 2020 13:05

AW: Wert in XML finden?
 
Delphi-Quellcode:
DatenNode := Doc.DocumentElement.FindNode('PDB').FindNode('Header');
DatenNode.RemoveChild(DatenNode.FindNode('Daten'));
Delphi-Quellcode:
DatenNode.RemoveChild.FindNode('Daten');
wie gesagt ich kenne Deine Library nicht.

Grüße
Klaus

LPascal 12. Nov 2020 15:04

AW: Wert in XML finden?
 
Ich verwende die Standard uses von Lazarus, also XMLRead, XMLWrite und DOM.

Klaus01 12. Nov 2020 16:18

AW: Wert in XML finden?
 
Zitat:

Zitat von LPascal (Beitrag 1477218)
Ich verwende die Standard uses von Lazarus, also XMLRead, XMLWrite und DOM.

funktionieren die oben beschriebenen Wege nicht.

Ich habe leider kein Lazarus installiert.

Grüße
Klaus

LPascal 12. Nov 2020 17:30

AW: Wert in XML finden?
 
Leider nicht, habe jetzt auch die Fehlermeldung nicht mehr im Kopf, muss später schauen.

LPascal 13. Nov 2020 11:20

AW: Wert in XML finden?
 
Die Fehlermeldung heißt:
Code:
main.pas(50,15) Error: Wrong number of parameters specified for call to "RemoveChild"
Hat vielleicht noch jemand eine Idee?

LPascal 13. Nov 2020 12:17

AW: Wert in XML finden?
 
Ich hab's. :thumb: Die Doku über DOM hat die Klarheit geschaffen. :thumb:
Vielen Dank, vorallem Dir Klaus!


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:50 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz