Einzelnen Beitrag anzeigen

Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: TXMLDocument: Typ (Null) in Typ (String) konvertieren

  Alt 19. Aug 2008, 08:09
Delphi-Quellcode:
procedure TMyList.LoadFromFile(AFile: string);
var
  i : integer;
  lxml : TXMLDocument;
  cn : IXMLNode;
  cnTemp : IXMLNode;

begin
if(not FileExists(AFile))then exit;
Self.Clear;
lxml := TXMLDocument.Create(Application);
with lxml do
  try
    Options:=Options + [doNodeAutoIndent];
    LoadFromFile(AFile);
    cn:=DocumentElement;
    for i :=0 to Pred(cn.ChildNodes.Count)do
      begin
      if(cn.ChildNodes.Nodes[i].NodeName = 'MyItem')then
        begin
        with TMyItem.Create(self) do
          begin
          FUser:= cn.ChildNodes[i].ChildValues['User'];//Hier tritt der Fehler auf
.
.
Und so schreib ich:

Delphi-Quellcode:
procedure TMyList.SaveToFile(AFile: string);
var
  i : integer;
  w : IXMLNode;

begin
with TXMLDocument.Create(nil) do
  try
    Active:=True;
    Options:=[doNodeAutoIndent];
    ParseOptions:=[poPreserveWhiteSpace];
    with AddChild('MyList') do
      begin
      for i :=0 to Pred(Self.Count)do
        begin
        with AddChild('MyItem') do
          begin
          AddChild('User').Text:=MyItems[i].FUser;
          AddChild('Password').Text:=MyItems[i].FPassword;
.
.

Hui der rote Kasten geht mal


Zitat von Deep-Sea:
Zitat von Angel4585:
Wie mache ich jetzt, dass beim Speichern bei einem leeren String <User>&lt;/User&gt; anstatt &lt;User /&gt; eingetragen wird?
Am Rande: &lt;User&gt;&lt;/User&gt; und &lt;User /&gt; stellen genau das gleiche dar. &lt;User /&gt; ist nur eine kürzere Schreibweise für ein Leeres Element.
Und was wenn ein String einfach ' ' sein soll? Also ein Leerzeichen? Dann macht er auch dieses <User />

Edit: Gott hats das Zitat verhunzt
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat