Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Aus CSV/StringList XML erstellen (https://www.delphipraxis.net/108735-aus-csv-stringlist-xml-erstellen.html)

Grolle 18. Feb 2008 18:13


Aus CSV/StringList XML erstellen
 
Hallo,

bezogen auf diesen Thread suche ich einen Ansatz um eine Stringlist in ein
XML(MSXML2)Dokument zu konvertieren. Die Stringlist sieht so aus:

main1;Submenu1,Sub2,Sub3
main1;Submenu2,Sub2
main2;Submenu3,Sub2,Sub3
main2;Submenu4,Sub2

Gibt es da eine Funktion oder muss ich da mit pos und copy ran?

Viele Grüße,

marabu 18. Feb 2008 18:42

Re: Aus CSV/StringList XML erstellen
 
Hallo Stefan,

dein Problem ist vergleichbar mit diesem: Eigene Ordnerstruktur in TreeView

Deine Beispieldaten scheinen mir nicht repräsentativ zu sein. Sind wirklich alle SubItems auf Level 1 SubMenus? Kaum vorstellbar.

Freundliche Grüße

Grolle 18. Feb 2008 18:58

Re: Aus CSV/StringList XML erstellen
 
Hallo Marabu,

es sollte später so aussehen:

Delphi-Quellcode:
main1(aktiv) main2

Submenu1
  Sub2
    Sub3
Submenu2
  Sub2
bzw.
Delphi-Quellcode:
main1 main2(aktiv)

Submenu3
  Sub2
    Sub3
Submenu4
  Sub2
Oben quasi das Hauptmenü, links dann ein eigenständiges Menü mit Unterpunkten. Ich hoffe ich konnte
es einigermaßen veranschaulichen. Die Frage ist eben, wie ich die csv einigermaßen schnell zerpflücken
kann.

Viele Grüße ...

marabu 18. Feb 2008 19:05

Re: Aus CSV/StringList XML erstellen
 
Nochmal anders gefragt - wie sieht dein CSV für folgende Darstellung aus?

Code:
main1(aktiv) main2

Submenu1
  Sub2
    Sub3
    Sub4
  Sub5
  Sub6
    Sub7
Submenu2
  Sub2
Item3
Item4

Grolle 18. Feb 2008 19:16

Re: Aus CSV/StringList XML erstellen
 
Hallo Marabu,

das sollte dann so aussehen:
Delphi-Quellcode:
main1;Sub1;Sub2;Sub3
main1;Sub1;Sub2;Sub4
main1;Sub1;Sub5;
main1;Sub1;Sub6;Sub7
main1;Sub2;Sub2;
main1;Item3;;
main1;Item4;;

marabu 18. Feb 2008 20:21

Re: Aus CSV/StringList XML erstellen
 
Hallo Stefan,

die Verwendung von Komma und Semikolon als Trennzeichen in deinem ersten Beispiel scheint also ein Schreibfehler gewesen zu sein. Ich bleibe daher dabei: Der von mir verlinkte Thread behandelt das gleiche Problem, lediglich statt der Baumknoten musst du XML-Knoten einbauen.

Gute Nacht

Grolle 18. Feb 2008 20:31

Re: Aus CSV/StringList XML erstellen
 
Zitat:

Zitat von marabu
die Verwendung von Komma und Semikolon als Trennzeichen in deinem ersten Beispiel scheint also ein Schreibfehler gewesen zu sein.

:oops: das kann wohl sein *sorry*. Werde mich mit deiner Funktion mal auseinandersetzen. Danke!

Grolle 26. Feb 2008 10:36

Re: Aus CSV/StringList XML erstellen
 
Hallo,

irgendwo hat sich ein Fehler eingeschlichen und ich find ihn einfach nicht :?
Also aus dem Array:
Delphi-Quellcode:
Programmierung;Web;Google;Gears;Google_Gears_TecFeed
Programmierung;Web;Google;Gears;Google_Gears_TecFeed
Programmierung;Web;Google;Web_API;Google_Web_API
Programmierung;Web;Google;Web_API;Google_Web_API
Programmierung;Web;JavaScript;Exploring_JavaScript;Exploring_Javascript
Programmierung;Web;JavaScript;Frameworks;Dojo_Toolki
Programmierung;Windows;Javat;;Java_2_EE
Programmierung;Windows;Cplusplus;;C++
Programmierung;Windows;Java;;Java_6_programmierhandbuch
Sonstiges;Dateisystem;;;Dateiformate
Sonstiges;Servertechnik;Linux;;Apache_Axis2
mach XML mit folgendem Code (Attribute rausgelassen):
Delphi-Quellcode:
     for j := 0 to navigationData.Count-1 do
        begin
         navigationArray := explode(';',navigationData[j]);
        if (navigationArray[0] <> '') and (lng.ChildNodes.FindNode(navigationArray[0]) = nil) then
          begin
            menuCount := menuCount + 1;
            mainNav := lng.AddChild(navigationArray[0]);
          end;
        if (navigationArray[1] <> '') and (mainNav.ChildNodes.FindNode(navigationArray[1]) = nil) then
          begin
            level1 := lng.ChildNodes.FindNode(navigationArray[0]);
            attribute := level1.AddChild(navigationArray[1]);
          end;
        if (navigationArray[2] <> '') and (level1.ChildNodes.FindNode(navigationArray[2])= nil) then
          begin
            level2 := level1.ChildNodes.FindNode(navigationArray[1]);
            attribute := level2.AddChild(navigationArray[2]);
          end;
        if (navigationArray[3] <> '') and (level2.ChildNodes.FindNode(navigationArray[3])= nil) then
          begin
            level3 := level2.ChildNodes.FindNode(navigationArray[2]);
            attribute := level3.AddChild(navigationArray[3]);
          end;
        end;
Ergebnis:
Delphi-Quellcode:
<Programmierung text="Programmierung" url="index_de_1.html" frame="dummy">
  <Web text="Web" frame="dummy">
    <Google text="Google" frame="dummy">
      <Gears text="Gears" frame="Google_Gears_TecFeed.pdf" />
      <Gears text="Gears" frame="Google_Gears_TecFeed.pdf" />
      <Web_API text="Web API" frame="Google_Web_API.pdf" />
      <Web_API text="Web API" frame="Google_Web_API.pdf" />
    </Google>
    <Google text="Google" frame="dummy" /> /////////////////// woher und warum?
    <Google text="Google" frame="dummy" /> /////////////////// woher und warum?
    <Google text="Google" frame="dummy" /> /////////////////// woher und warum?
    <JavaScript text="JavaScript" frame="dummy">
      <Exploring_JavaScript text="Exploring JavaScript" frame="Exploring_Javascript.pdf" />
      <Frameworks text="Frameworks" frame="Dojo_Toolki.pdf" />
    </JavaScript>
    <JavaScript text="JavaScript" frame="dummy" /> /////////////////// woher und warum?
  </Web>
<Windows text="Windows" frame="dummy">
  <Javat text="Javat" frame="Java_2_EE.pdf" />
  <Cplusplus text="Cplusplus" frame="C++.pdf" />
  <Java text="Java" frame="Java_6_programmierhandbuch.pdf" />
  </Windows>
</Programmierung>
<Sonstiges text="Sonstiges" url="index_de_2.html" frame="dummy">
  <Dateisystem text="Dateisystem" frame="Dateiformate.pdf" />
  <Servertechnik text="Servertechnik" frame="dummy">
    <Linux text="Linux" frame="Apache_Axis2.pdf" />
  </Servertechnik>
</Sonstiges>
Viele Grüße ...

Grolle 27. Feb 2008 12:48

Re: Aus CSV/StringList XML erstellen
 
*PUSH* :stupid:

marabu 27. Feb 2008 13:44

Re: Aus CSV/StringList XML erstellen
 
Hi Stefan,

kannst du dein Problem in einem Miniprojekt samt Beispieldaten verschnüren?

Freundliche Grüße


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:30 Uhr.
Seite 1 von 2  1 2      

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