Results 1 to 11 of 11

Thread: TXMLDocument kom er niet uit.

  1. #1

    TXMLDocument kom er niet uit.

    Hoi,

    Ik heb de handleiding van Dr Bob gevolgd om om te gaan met een XML bestand.
    Nu wil ik vanuit de code een nieuw XML bestand aanmaken.
    Dat lukt wel, maar vervolgens kan ik deze niet vullen gegevens.

    De foutmelding die heeft te maken met het ontbreken van een eerste regel [0].

    De uitleg op de site van Dr Bob, gaat niet verder dan een enkele "tabel" in XML, maar hoe werkt het als je geneste gegevens wilt gebruiken..??..

    Wie kan mij helpen, het liefst met wat code..


    Alvast bedankt.

    Grz
    Jeroen.

  2. #2
    Kun je wat code plaatsen wat je nu hebt? Het is niet helemaal duidelijk wat er mis gaat en waar je vast loopt.
    Marcel

  3. #3
    Hieronder staat de code...
    Code:
    var
      PersoonNode : IXMLNode;
    begin
      if Not FileExists('D:\Data\Programm\Delphi\XML\Test1.xml') then
      begin
        XMLDocument.Create('D:\Data\Programm\Delphi\XML\Test1.xml');
      end
      else
      begin
        XMLDocument.FileName := 'D:\Data\Programm\Delphi\XML\Test1.xml';
      end;
    
      XMLDocument.Active := True;
    
      // Hier gaat het fout..
      PersoonNode := XMLDocument.DocumentElement.AddChild('Persoon');
      PersoonNode.ChildNodes['Naam'].Text := 'Jeroen';
      PersoonNode.ChildNodes['Adres'].Text := 'Lijsterhof 80';
    
      XMLDocument.SaveToFile;
      XMLDocument.Active := False;
    end;
    Grz
    Jeroen.
    Last edited by Dees; 17-Jun-05 at 12:43. Reason: code tags

  4. #4
    Je DocumentElement is niets anders dan het eerste element in je document. Omdat je met een leeg document begint moet je die dus eerst nog toekennen.
    Marcel

  5. #5
    Bedankt

    Maar heb je misschien een stukje voorbeeld code..
    En hoe doe ik het dan als ik nog een node onder de persoonnode wil hangen..??..

    Jeroen.

  6. #6
    Hmm, volgens mij stond er niet zo heel veel in het artikel van DrBob. Als je een document helemaal vanaf niets wilt maken kun je dat bijvoorbeeld als volgt doen:
    Code:
       with XMLDocument do
       begin
         Active := True;
         with AddChild('Persoon') do
         begin
           with AddChild('Naam') do
             Text := 'Marcel';
           with AddChild('Adres') do
             Text := 'http://www.MarcelvanBeuzekom.nl';
         end;
       end;
    Heb je ook al eens naar de mogelijkheid gekeken om interfaces te genereren vanuit een XML (of schema of DTD) bestand? Je code wordt dan een stuk leesbaarder omdat je op een standaard Delphi manier regels toevoegt. Een stukje uit mijn code:
    Code:
    Thread := Forum.Thread.Add;
    Thread.ID := TrackerDataThreadID.AsInteger;
    Thread.Title := TrackerDataThreadTitle.AsString;
    Thread.Member.ID := TrackerDataThreadStarterID.AsInteger;
    Thread.Member.Name := TrackerDataThreadStarterName.AsString;
    Hier wordt een nieuwe Thread node aan een Forum node toegevoegd en die Thread node heeft weer een Member node. Kortom, de code is simpeler dan de uitleg. Zo'n interface maak je aan met de databinding wizard via File / New / Other / Data binding wizard.
    Marcel

  7. #7
    Senior Member
    Join Date
    Jul 2002
    Location
    Veldhoven
    Posts
    280

    Data Binding

    Ik kan met geen mogelijkheid de XML Data Binding Wizard vinden....
    ik gebruik Delphi2005 Professional
    Zit er maar niet over in hoe je verleiding moet weerstaan. Naarmate je ouder wordt zal de verleiding jou weerstaan.

  8. #8
    File -> New -> Others -> Delphi Projects -> XML - XML Data Binding. Maar ik ben bang dat deze niet in de Pro versie is meegeleverd. Dit was ook niet bij D6 en D7. Door een fout in de update van Delphi 6 kwam hij er uiteindelijk wel bij. Mischien kun je dat eens nazoeken in de documentatie...

  9. #9
    Ik zie dat niet voorkomen in D2005 Professional
    DeX 3 Delphi := The ease of VB with the power of C; Zoekt en gij zult vinden

  10. #10
    Senior Member
    Join Date
    Jul 2002
    Location
    Veldhoven
    Posts
    280
    Nee, 't zit er gewoon niet in. Balen hoor.
    Zit er maar niet over in hoe je verleiding moet weerstaan. Naarmate je ouder wordt zal de verleiding jou weerstaan.

  11. #11
    Er is een overzicht van wat je in welke versie kunt vinden: Delphi 2005 Feature Matrix.
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Replies: 67
    Last Post: 15-Jun-04, 12:32
  2. popupmenu weg wanneer niet op item word geklikt
    By SvG in forum Artikelen & tips
    Replies: 7
    Last Post: 02-Oct-03, 20:07
  3. Replies: 33
    Last Post: 24-Jun-03, 00:17

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •