-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
13. Nov 2020
Ich hab's. :thumb: Die Doku über DOM hat die Klarheit geschaffen. :thumb:
Vielen Dank, vorallem Dir Klaus!
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
13. Nov 2020
Die Fehlermeldung heißt:
main.pas(50,15) Error: Wrong number of parameters specified for call to "RemoveChild"
Hat vielleicht noch jemand eine Idee?
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
12. Nov 2020
Leider nicht, habe jetzt auch die Fehlermeldung nicht mehr im Kopf, muss später schauen.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
12. Nov 2020
Ich verwende die Standard uses von Lazarus, also XMLRead, XMLWrite und DOM.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
12. Nov 2020
Ja, das war auch meine Idee, aber RemoveChild erwartet als Parameter TDOMNode und keinen String.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
12. Nov 2020
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.
<PDB>
<Header>
<Daten>
<Personen>
<Anrede>Herr</Anrede>
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
29. Okt 2020
Ja, ich weiß nicht wieso, aber bei wird wird das überschrieben. :gruebel:
Wahrscheinlich weil ich keinen Root-Knoten habe. Aber wenn ich diesen anlege, dann kann ich mein Konstrukt nicht in die bestehende XML einfügen, da es wohl zu Root-Konflikten kommt.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Das geht? Klasse, jetzt funkt es! Riiiiiesen Dank Dir!
Jetzt aber noch eine Hürde. Ich muss ja zwei Personen einfügen. Wie kann ich das gleiche Element bzw. <Personen>-Konoten noch einmal anlegen, ohne das erste zu überschrieben?
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Mit <Daten> stürzt das Programm mit einem Exception-Fehler ab. Ich verstehe jetzt nur Bahnhof. :vernupft:
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Es scheint an dieser Zeile zu scheitern - "Doc.Appendchild(RootNode);"
Das mach wohl den Knoten RootNode zum Root-Knoten im Doc, und das muss bereits vorhanden bzw. besetzt sein, und daher der Fehler.
Kann das sein?
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Ich hab's jetzt so gelöst:
procedure TForm1.Button3Click(Sender: TObject);
var
Doc: TXMLDocument;
RootNode, ParentNode, DatenNode, VarElemen, ElementNode, ItemNode, TextNode: TDOMNode;
begin
try
ReadXMLFile(Doc, 'Muster.xml');
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Ne, bringt nichts... immer der selbe Fehler.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Ja, der Fehler kommt hier schon. Ja... :wall:
RootNode := Doc.CreateElement('Personen');
Doc.Appendchild(RootNode);
Das Tutorial kenne ich, da gucke ich auch, bin aber in dem Thema XML noch nicht ganz drin.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Dazu kommt es gar nicht, das Prog stürzt ab, mit der Meldung "EDOMHierarchyRequest in Document.Insert.Before".
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Stimmt, das habe ich übersehen. Mein Ergebnis sieht so aus, aber irgendwie werde ich nicht warm damit, irgendwo ist da noch ein Fehler, denn ich nicht sehe.
procedure TForm1.Button3Click(Sender: TObject);
var
Doc: TXMLDocument;
RootNode, ParentNode, DatenNode, VarElemen: TDOMNode;
begin
try
ReadXMLFile(Doc, 'Muster.xml');
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
27. Okt 2020
Ok... müsste also so gehen, aber irgendwie mache ich noch was falsch, und ich verstehe nicht was.
procedure TForm1.Button3Click(Sender: TObject);
var
Doc: TXMLDocument;
RootNode, ParentNode, DatenNode, VarElemen: TDOMNode;
begin
try
ReadXMLFile(Doc, 'Muster.xml');
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
26. Okt 2020
Habe noch das hier gefunden:
NovoNo := XMLDoc.CreateElement('item');
TDOMElement(NovoNo).SetAttribute('nome', 'Item');
TDOMElement(NovoNo).SetAttribute('arquivo', 'Arquivo');
XMLDoc.DocumentElement.ChildNodes.Item.AppendChild(NovoNo);
Die Frage ist nur, an welche Stelle (Item) setze ich meinen <Personen>-Knoten ein?
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
26. Okt 2020
Ja, den ersten Teil habe ich geschafft, siehe Code. Wie kann ich jetzt am besten den <Personen>-Knoten dem Knoten <Daten> hinfügen? :gruebel: Gibt es vielleicht irgendwo Beispiele?
Doc := TXMLDocument.Create;
RootNode := Doc.CreateElement('Personen');
Doc.Appendchild(RootNode);
RootNode:= Doc.DocumentElement;
ParentNode := Doc.CreateElement('Anrede');
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
26. Okt 2020
Ja, da gibt es entsprechende Tags dafür, ich habe sie nur weggelassen, da sonst mein XML-Beispiel zu lange wird. Hast Du vielleicht einen Tipp für mich wie das gehen könnte? Also erst für die Tags Anrede, Vor- u. Nachname sowie Alter, den Rest verarbeite ich selber wenn ich mal die Logik verstanden habe.
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
26. Okt 2020
Hallo zusammen,
@zeras Du hast Recht. XML ist noch ein Neuland für mich, daher stand ich auf dem Schlauch.
@Klaus01 Danke Dir, so läuft das also. :thumb:
Die weitere Aufgabenstellung ist, wenn sich in der XML ein Dr. befindet und er über 50 Jahre alt ist, dann werden ihm zwei Praktikanten zugewiesen und dessen Namen in die XML geschrieben. Jetzt muss ich praktisch in die bestehende XML-Datei...
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
24. Okt 2020
Hallo Klaus,
danke Dir! Ich schaue mal nach!
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
24. Okt 2020
Ja, genau! Die Frage ist nur wie frage ich das Alter ab?
-
Forum: Object-Pascal / Delphi-Language
FreePascal
by LPascal,
23. Okt 2020
Hallo zusammen,
bin neu hier und habe gleich diese Frage: also ich habe viele XML-Dateien dieser Art. Gesucht soll nach der Anrede "Dr.", was natürlich an unterschiedlichen Stellen sich befinden kann, oder gar fehlen kann. Ist diese Gefunden - soll sein Alter ausgelesen werden, und das Auslesen des Alters gelingt mir nicht. Könnte mir da jemand auf die Sprünge helfen?
<PDB>
<Header>
...