Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Einer bestehenden XML Datei einen Eintrag hinzufügen (https://www.delphipraxis.net/100842-einer-bestehenden-xml-datei-einen-eintrag-hinzufuegen.html)

niko022 4. Okt 2007 15:34


Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Hallo,
ich hätte eine Frage weis jemand wie man bei einer bestehenden xml-Datei Einträge hinzufügen kann.

Meine XML Datei soll den folgenden Aufbau erhalten. Das heißt cContact soll immer hinzugefügt
werden können

Code:

<?xml version="1.0" encoding="UTF-8"?>
<RootNode>
  <cContact>
    <ContactNo>EXTERN_01</ContactNo>
    <iActive>Text2</iActive>
  </cContact>

  <cContact>
    <ContactNo>EXTERN_01</ContactNo>
    <iActive>Text2</iActive>
  </cContact>

  ...

</RootNode>
In Delphi schreibe ich das ganze wie folgt in eine Date:

Delphi-Quellcode:

Stream := TFileStream.Create('Test.xml', fmOpenReadWrite);
Stream.Seek(0, soFromEnd);
DomToXmlParser1.WriteToStream(FDoc, 'UTF-8', Stream);
Stream.Free;
Das Problem dabei ich bekomme natürlich immer den Kopf <?xml version="1.0" encoding="UTF-8"?>
und den <RootNode> mit. Kann man die irgendwie ausschalten.

Der Inhalt der Datei sieht dann so aus:

Code:

<?xml version="1.0" encoding="UTF-8"?>
<RootNode><cContact><ContactNo>EXTERN_01</ContactNo><iActive>Text2</iActive></cContact></RootNode>
<?xml version="1.0" encoding="UTF-8"?>
<RootNode><cContact><ContactNo>EXTERN_02</ContactNo><iActive>Text3</iActive></cContact></RootNode>
<?xml version="1.0" encoding="UTF-8"?>
<RootNode><cContact><ContactNo>EXTERN_03</ContactNo><iActive>Text4</iActive></cContact></RootNode>
Müßte aber eigentlich dann so aussehen?

Code:
<?xml version="1.0" encoding="UTF-8"?>
<RootNode>
<cContact><ContactNo>EXTERN_01</ContactNo><iActive>Text2</iActive></cContact>
<cContact><ContactNo>EXTERN_02</ContactNo><iActive>Text3</iActive></cContact>
<cContact><ContactNo>EXTERN_03</ContactNo><iActive>Text4</iActive></cContact>
</RootNode>

Wie kann ich Datensätze in eine bestehende XML - Datei hinzufügen?


Vielen Dank.

Bernhard Geyer 4. Okt 2007 15:41

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Zitat:

Zitat von niko022
Wie kann ich Datensätze in eine bestehende XML - Datei hinzufügen?

Du verwendest eine der bekannten XML-Parser (OpenXML, MSXML, ...), setzt dich mit den bereitgestellten Methoden auseinander und nimmst die dort verfürbaren AddNode, ...-Methoden zum einfügen. TFileStream als "Bearbeitungsklasse" ist für XML nicht geeignet.

niko022 4. Okt 2007 15:45

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Hallo,
vielen Dank für die schnelle beantwortung.

Hast du einen Link bzw. ein Tutorial wo man mehr über die Methoden bzw. über den XML - Parser nachlesen kann? Ich habe nicht wirklich eine gute doku dazu.

sakura 4. Okt 2007 15:48

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Nutze mal die Suche der DP und schränke den Suchbereich auf unsere Tutorial Sparte ein, dann wirst Du Informationen zu den verschiedensten XML-Parsern finden. Stichwort: Hier im Forum suchenxml tutorial

...:cat:...

niko022 5. Okt 2007 07:40

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Hallo
hat jemand noch irgendeinen Tipp in Bezug in eine bestehende XML Datei einen Eintrag (Datensatz) hinzuzufügen?

Ich habe im Forum bzw. im Netz nichts gefunden mit dem ich was anfangen könnte.

Vielen Dank nochmal.

sakura 5. Okt 2007 08:04

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Zitat:

Zitat von niko022
Ich habe im Forum bzw. im Netz nichts gefunden mit dem ich was anfangen könnte.

Hast Du gesucht wie ich es empfohlen habe? Das beliebteste und hoch gelobte Tutorial zum Thema: http://www.delphipraxis.net/internal...t=xml+tutorial
Da steht alles drinne was Du brauchst... Sorry, aber mit Faulheit stößt Du hier leider überall auf taube Ohren. Wenn Du Fragen zum Tutorial hast, dann frage direkt in dem Thread oder hier. Aber nichts gefunden, glaube ich nicht. Es gibt hier weitere Tutorials zum Thema und anderen DOMs.

...:cat:...

niko022 5. Okt 2007 08:38

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Vielen Dank erstmal.

Ich habe schon ein paar Tutorials gefunden, aber jetzt spezielle Methoden oder Beschreibungen wie man in eine bestehende XML Datei Datensätze hinzufügen kann nicht.

Ich schau mal ob ich dem Tutorial das du gelinkt hast was finde.

sakura 5. Okt 2007 09:28

Re: Einer bestehenden XML Datei einen Eintrag hinzufügen
 
Zitat:

Zitat von niko022
Ich habe schon ein paar Tutorials gefunden, aber jetzt spezielle Methoden oder Beschreibungen wie man in eine bestehende XML Datei Datensätze hinzufügen kann nicht.

Doc: IXMLDOMDocument2; deklarieren, dann erstellen (CoCreate...), dann das XML File laden (Load) and dann neue Nodes erstellen (CreateNode, CreateElement) und mittels AppendChild (oder AppendNode :gruebel:) anhängen und wieder speichern (Save).

...:cat:...


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