Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   XML für Anfänger (https://www.delphipraxis.net/210763-xml-fuer-anfaenger.html)

Mantrid 6. Jun 2022 15:36

XML für Anfänger
 
Hallo,

gibt es für Anfänger eine Anleitung, wie man mit Delphi eine XML Datei erstellt, bearbeiten und auslesen kann?

Irgendwie finde ich da nichts, was für Anfänger geeignet ist.

Ich programmiere nur Hobbymässig und habe da nicht so viel Erfahrung.

Mein Ziel ist es, mit einer XML Datei ein paar Daten zu speichern und wieder auszulesen.

Danke im voraus.

TurboMagic 6. Jun 2022 18:23

AW: XML für Anfänger
 
1. Hast du die Demos mit installiert?
Bei den RTL Demos ist sicher was dabei.

2. Das IXMLDocument Interface ist ein Ansatzpunkt.
Mal die Hilfe dazu lesen, evtl. ist da auch das
Demo Programm verlinkt.

Grüße
TurboMagic

jobo 6. Jun 2022 19:44

AW: XML für Anfänger
 
Als Anfänger könntest Du auch mit JSON starten, das ist etwas übersichtlicher als XML und für viele Dinge ziemlich ausreichend.

Mantrid 6. Jun 2022 21:07

AW: XML für Anfänger
 
Zitat:

Zitat von jobo (Beitrag 1506869)
Als Anfänger könntest Du auch mit JSON starten, das ist etwas übersichtlicher als XML und für viele Dinge ziemlich ausreichend.

Danke für den Hinweis.

Ich habe was über GNU Cash gelesen. Das speichert mit XML Dateien und das hat mein Interesse geweckt. Ich will einfach mal sehen, wieviel Aufwand das ist und ob man XML Dateien gut zum speichern verwenden kann.


Zitat:

1. Hast du die Demos mit installiert?
Bei den RTL Demos ist sicher was dabei.

2. Das IXMLDocument Interface ist ein Ansatzpunkt.
Mal die Hilfe dazu lesen, evtl. ist da auch das
Demo Programm verlinkt.

Grüße
TurboMagic
Danke für die Hinweise IXMLDocument werde ich mir mal durchlesen. Die Beispiele habe ich bisher nicht verwendet. Finde ich die als neues Projekt oder in einem eigenen Verzeichnis. Beim installieren habe ich bis auf IOS und Android alles ausgewählt.

Gruß
Mantrid

Der schöne Günther 7. Jun 2022 04:49

AW: XML für Anfänger
 
https://docwiki.embarcadero.com/Code...e_case_(Delphi)

Mantrid 8. Jun 2022 09:11

AW: XML für Anfänger
 
Zitat:

Zitat von Der schöne Günther (Beitrag 1506878)

Danke.

Mantrid 19. Jun 2022 01:01

AW: XML für Anfänger
 
Mit XML komme ich mit dem Beispiel nicht so klar.

Die Ausgabe ist in zwei Zeilen und ich habe hier noch Fragen.

Mein Source code:
Code:
function createXML1: string;
var
   xml1 : string;
   xml2 : ixmldocument;
   xmlnode, nodetext, nodedata : ixmlnode;

begin
  xml1 := '';
  xml2 := Txmldocument.create(nil);
  xml2.Active := true;
  xml2.Encoding := 'UTF-16';
  xml2.Version := '1.0';
  //xml2.StandAlone :='yes';   //Keine Ahnung, ob ich das brauche oder nicht.


  { Define document content. }

  XML2.DocumentElement := XML2.CreateNode('ThisIsTheDocumentElement', ntElement, '');

  XML2.DocumentElement.Attributes['attrName'] := 'attrValue';
  XMLNode := XML2.DocumentElement.AddChild('ThisElementHasText', -1);
  XMLNode.Text := 'Inner text.';

  NodeData := XML2.CreateNode('any characters here', ntCData, '');
  XML2.DocumentElement.ChildNodes.Add(NodeData);

  NodeText := XML2.CreateNode('This is a text node.', ntText, '');
  XML2.DocumentElement.ChildNodes.Add(NodeText);

  NodeText := XML2.CreateNode('This is a text node 2.', ntText, '');
  XML2.DocumentElement.ChildNodes.Add(NodeText);

  XMLNode := XML2.DocumentElement.AddChild('ThisElementHasText-2', -1);

  xml1 := xml2.xml.Text;
  result := xml1;
end;
Die entsprechende Ausgabe

Zitat:

<?xml version="1.0" encoding="UTF-16"?>
<ThisIsTheDocumentElement attrName="attrValue"><ThisElementHasText>Inner text.</ThisElementHasText><![CDATA[any characters here]]>This is a text node.This is a text node 2.<ThisElementHasText-2/></ThisIsTheDocumentElement>
Meine Fragen:
Wieso ist der Inhalt in einer Zeile und nicht wie bei anderen XML Dateien in mehreren Zeilen?

Kann man mehrere Elemente in eine XML Datei einfügen?

Ich versuche eine XML wie folgt aufzubauen:

Zitat:

<?xml version="1.0" encoding="UTF-16"?>
<Element-1 attrName="Attribut-1">
<ThisElementHasText>Inner text.</ThisElementHasText>
<![CDATA[any characters here]]>This is a text node.This is a text node 2.
<ThisElementHasText-2/></ThisIsTheDocumentElement>
</Element-1>
<Element-2>
<Content-1>Irgendein Inhalt 1.</Content-1>
<Content-2>Irgendein Inhalt 2.</Content-2>
</Element-2>
Ziel ist es, dass ich mir eine kleine Adressdatenbank auf XML erzeuge.
Elemente sind die Adressen
Content die Daten wie Name, Anschrift, etc.
Attribute sollten angeben Handy Nr., Festnetz, etc.

Ist da ein Gedankenfehler von mir und ich muss das anders aufbauen oder habe ich was komplett falsch gemacht?

HolgerX 19. Jun 2022 09:14

AW: XML für Anfänger
 
Hmm..

Wieso kommst Du darauf, das XML mehrere Zeilen haben muss?

Sauberes XML hat nur eine lange Zeile ohne Zeilenumbrüche oder unnötige Leerzeichen welche das TXT Dokument nur aufblähen.

Die Darstellung über mehrere Zeilen ist nur ein Hilfsmittel für Menschen (für die XML eigentlich nicht direkt bestimmt ist) oder wird durch das Betrachtungstool (Browser/Viewer...) so dargestellt, damit es für Menschen lesbarer wird.

Somit ist die eine Zeile richtiger! ;)

hhcm 19. Jun 2022 11:10

AW: XML für Anfänger
 
Zitat:

Zitat von Mantrid (Beitrag 1507485)
Wieso ist der Inhalt in einer Zeile und nicht wie bei anderen XML Dateien in mehreren Zeilen?

https://docwiki.embarcadero.com/Libr....FormatXMLData

Mantrid 19. Jun 2022 12:38

AW: XML für Anfänger
 
Zitat:

Zitat von HolgerX (Beitrag 1507486)
Hmm..

Wieso kommst Du darauf, das XML mehrere Zeilen haben muss?

Sauberes XML hat nur eine lange Zeile ohne Zeilenumbrüche oder unnötige Leerzeichen welche das TXT Dokument nur aufblähen.

Die Darstellung über mehrere Zeilen ist nur ein Hilfsmittel für Menschen (für die XML eigentlich nicht direkt bestimmt ist) oder wird durch das Betrachtungstool (Browser/Viewer...) so dargestellt, damit es für Menschen lesbarer wird.

Somit ist die eine Zeile richtiger! ;)

Vom technischen Standpunkt verständlich. Da aber die Konfigurations XML Dateien und auch die XRechnung XML in mehreren Zeilen sind wollte ich wissen, was da nötig ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.

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