AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Neuen Knoten einfügen

Ein Thema von tobu · begonnen am 17. Mär 2005 · letzter Beitrag vom 17. Mär 2005
Antwort Antwort
tobu

Registriert seit: 16. Mär 2005
22 Beiträge
 
Delphi 2006 Enterprise
 
#1

Neuen Knoten einfügen

  Alt 17. Mär 2005, 09:13
Hallo ich habe ein Problem mit dem Einfügen einese Knotens in ein bestehendes XML-Document. Ich habe folgenden Code geschrieben und benutzte Delphi 7:
Delphi-Quellcode:
procedure TForm1.BSpeichernClick(Sender: TObject);
  var
  NewScript: IXMLNode;
  ValueScript: IXMLNode;
begin
  NewScript := XMLDocument1.DocumentElement.AddChild('Script');

  //Erstellen der Attribute
  if CBDBTyp.ItemIndex = 0 then
     NewScript.Attributes['DB-Typ'] := 'SQL-Server'
  else
    NewScript.Attributes['DB-Type'] := 'Oracle';

  NewScript.Attributes['Nummer'] := ENummer.Text;

  if CBAuthor.ItemIndex = 0 then
    NewScript.Attributes['Author'] := 'CD';
  if CBAuthor.ItemIndex = 1 then
    NewScript.Attributes['Author'] := 'FV';
  if CBAuthor.ItemIndex = 2 then
    NewScript.Attributes['Author'] := 'JSP';

  //Erstellen der Elemente
  ValueScript := NewScript.AddChild('Beschreibung');
  ValueScript.Text := MBeschreibung.Text;
  ValueScript := NewScript.AddChild('Befehl');
  ValueScript.Text := MSQL.text;

end;
Das Problem ist, ich bekomme keine Fehlermeldung beim ausführen. Aber in dem XML-Document wird kein Knoten eingefügt.
Hat vieleicht jemand eine Idee woran das liegen könnte?
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 09:22
Ich kenne mich damit nicht so aber, aber muss man das XML-Dokument nicht auch speichern?
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
tobu

Registriert seit: 16. Mär 2005
22 Beiträge
 
Delphi 2006 Enterprise
 
#3

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 09:27
Du meinst, es wird erst in das Document geschrieben, wenn ich expliziert speichere. Das wäre möglich ich probiere es mal aus. Danke für den Tip.
  Mit Zitat antworten Zitat
tobu

Registriert seit: 16. Mär 2005
22 Beiträge
 
Delphi 2006 Enterprise
 
#4

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 10:14
Ich habe jetzt den Code wie folgt abgeändert.
Delphi-Quellcode:
procedure TForm1.BSpeichernClick(Sender: TObject);
  var
  NewScript: IXMLNode;
  ValueScript: IXMLNode;
begin
  XMLDocument1.LoadFromFile(FileName);
  NewScript := XMLDocument1.DocumentElement.AddChild('Script');

  //Erstellen der Attribute
  if CBDBTyp.ItemIndex = 0 then
     NewScript.Attributes['DB-Typ'] := 'SQL-Server'
  else
    NewScript.Attributes['DB-Type'] := 'Oracle';

  NewScript.Attributes['Nummer'] := ENummer.Text;

  if CBAuthor.ItemIndex = 0 then
    NewScript.Attributes['Author'] := 'CD';
  if CBAuthor.ItemIndex = 1 then
    NewScript.Attributes['Author'] := 'FV';
  if CBAuthor.ItemIndex = 2 then
    NewScript.Attributes['Author'] := 'JSP';

  //Erstellen der Elemente
  ValueScript := NewScript.AddChild('Beschreibung');
  ValueScript.Text := MBeschreibung.Text;
  ValueScript := NewScript.AddChild('Befehl');
  ValueScript.Text := MSQL.text;
  XMLDocument1.SaveToFile(FileName);
end;
Jetzt bekomme ich aber eine Fehlermeldung Exception der Klasse EDOMParserError. Ich gehe mal davon aus das die XML-Datei fehlerhaft ist, aber im Browser wird sie richtig dargestellt.
  Mit Zitat antworten Zitat
tobu

Registriert seit: 16. Mär 2005
22 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 11:00
Hallo der oben beschriebenen Code funktioniert. Ich hatte einen Zeichendreher in meinem FileName.
Machmal sind es einfach die Flüchtigkeitsfehler die einen aufhalten.
In diesem Sinne...
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#6

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 11:55
Schön, aber mach dir trotzdem mal Gedanken über diese Stelle:
Zitat von tobu:
Delphi-Quellcode:
  if CBAuthor.ItemIndex = 0 then
    NewScript.Attributes['Author'] := 'CD';
  if CBAuthor.ItemIndex = 1 then
    NewScript.Attributes['Author'] := 'FV';
  if CBAuthor.ItemIndex = 2 then
    NewScript.Attributes['Author'] := 'JSP';
Das kriegst du doch besser hin, oder?
  Mit Zitat antworten Zitat
tobu

Registriert seit: 16. Mär 2005
22 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 15:23
Das war ja nur ein Prototype ich habe jetzt anders gemacht.
Delphi-Quellcode:
 case CBAuthor.ItemIndex of
  0: NewScript.Attributes['Author'] := 'CD';
  1: NewScript.Attributes['Author'] := 'FV';
  2: NewScript.Attributes['Author'] := 'JSP';
  end;
  Mit Zitat antworten Zitat
MathiasSimmack
(Gast)

n/a Beiträge
 
#8

Re: Neuen Knoten einfügen

  Alt 17. Mär 2005, 15:42
Mit einem
array[0..2]of string[?] ginge es in einer Zeile. Aber was steht denn in dieser ComboBox (CBAuthor) drin? Kannst du das nicht direkt verwenden?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:19 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