AGB  ·  Datenschutz  ·  Impressum  







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

XML Codeerstellung

Ein Thema von mikenrw · begonnen am 7. Mär 2006 · letzter Beitrag vom 11. Mär 2006
 
MathiasSimmack
(Gast)

n/a Beiträge
 
#10

Re: XML Codeerstellung

  Alt 11. Mär 2006, 11:34
Zitat von mikenrw:
Großartige Hilfe. Außer Arroganz, steht hier nicht viel.
Tut mir leid, dass du das so auffasst. Aber ich habe dir die Fehler deines Codes gezeigt. Ich wusste nicht, dass ich dir auch das eigene Denken abnehmen soll. Wie dem auch sei, ich fasse noch mal zusammen:

Du erstellst eine XML-Datei, indem du erst den Grundbaum inkl. erstem Knoten erzeugst. Und dann den zweiten, vermutlich den dritten, usw. Das ist zu umständlich. Wenn ich mehrere gleiche Knoten in einer XML-Datei speichern möchte und (aus welchen Gründen auch immer) keinen Wrapper/Serializer nutzen möchte, dann schreibe ich mir eine entsprechende Hilfsfunktion, der ich den Parentknoten und ggf. das XML-Dokument übergebe. In der Art wie
Delphi-Quellcode:
function TBla.CreateXmlNode(ParentNode: IXMLDOMNode; XmlDoc: DomDocument;
  Attr1Value, Attr2Value: string): IXMLDOMNode;
begin
  // den gewünschten Knoten lokal erzeugen
  Result := XmlDoc.CreateElement(...);

  // ggf. Attribute und dergleichen erzeugen
  { ... }

  // neuen Knoten ggf. gleich einhängen
  ParentNode.AppendChild(Result);
end;
Das ist nur ein Beispiel. Ich behaupte jetzt einfach mal, dass du einen Knoten mit zwei Attributen erzeugst, und Grundlage für die Attribute (sprich: Values) sind die zwei Stringvariablen im Funktionskopf. Damit würde sich deine Schreibarbeit im Code schon mal enorm reduzieren. Mal angenommen, du hast den Grundcode der XML-Datei bereits fertig, dann könnte das so aussehen:
Delphi-Quellcode:
self.CreateXmlNode(ConceptGrpNode, xmldoc, Edit1.Text, Edit2.Text);
self.CreateXmlNode(ConceptGrpNode, xmldoc, Edit3.Text, Edit4.Text);
{ ... }
Du siehst, was ich meine? Dieser Ansatz ließe sich noch weiter optimieren. Damit könntest du deinen Programmcode einfacher gestalten, ohne irgendwelche Wrapper oder Serializer zu nutzen. Aber wie bereits alzaimar schrieb, mit einem Wrapper (oder eben einem .NET-Serializer) lässt sich die Arbeit noch weiter vereinfachen.

Im Prinzip war dein größter Fehler (und das ist nicht böse gemeint!) einfach nur, dass du die Variable "node1" mehrfach verwendet und innerhalb von 5 Programmzeilen neu zugewiesen hast. Natürlich landen die neuen Knoten dann an einer falschen Stelle. Zumindest für deinen Hauptknoten solltest du also eine eigene Variable nutzen, etwa wie ich im Beispiel mit "ConceptGrpNode". Allzu sparsam sollte man also auch nicht mit Variablen umgehen, wenn man etwas bestimmtes erreichen will.

Zitat:
Antworte nicht, wenn Du keine Lust hast.
Tue ich nicht mehr. Keine Sorge.
  Mit Zitat antworten Zitat
 


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 17:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz