Einzelnen Beitrag anzeigen

Mantrid

Registriert seit: 6. Jun 2022
Ort: Deutschland
25 Beiträge
 
FreePascal / Lazarus
 
#7

AW: XML für Anfänger

  Alt 19. Jun 2022, 01:01
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?
  Mit Zitat antworten Zitat