Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Leerzeichen im string Attribute in XML Datei schreiben (https://www.delphipraxis.net/139329-leerzeichen-im-string-attribute-xml-datei-schreiben.html)

Boro 29. Aug 2009 22:03

Re: Leerzeichen im string Attribute in XML Datei schreiben
 
Zitat:

Zitat von himitsu
aber es gibt für Text diese Möglichkeiten
XML-Code:
<node attr="text" />
<node>text</node>
<node><[CDATA[text]]></node>
wobei man in CDATA die wenigsten Beschränkungen hat und auch keine Normalisierung durchgeführt wird

<[CDATA[text]]> könnte man via .CreateNode und als NodeType ntCData erstellen
aber eventuell gibt es auch eine Vaiante, womit man einem "normalem" Node sagt, daß dessen "Text" in einen CDATA-Bereich rein soll

Wenn ich Element via .CreateNode und als NodeType ntCData erstelle,
Delphi-Quellcode:
  ixnNote := XMLDocument1.CreateNode('note',ntElement,'');
  ixnRoot.ChildNodes.Add(ixnNote);

  ixnNoteHead := XMLDocument1.CreateNode('noteHead',ntCData,'');
  ixnNoteHead.NodeValue := ' anyhead';
  ixnNote.ChildNodes.Add(ixnNoteHead);
dann kommt in die .xml Datei nur die CDATA sektion ohne den Namen des Elementen 'noteHead'.
XML-Code:
<note><![CDATA[   anyheadtext]]></note>
Dies ist sehr schlecht, weil das Element noteHead ausgefallen ist.
Wenn ich so erstellte Datei dem Data Binding Wizard gib, generiert er keine Elementklasse 'NoteHead' aus dieser Datei. Sogar das Element 'Note' sieht der Binding Wizard nur als widestring Property (Attribut).

Wenn ich aber in diese .xml Datei das fehlende Elementenname mit Hand zuschreibe
XML-Code:
<note><noteHead><![CDATA[   anyheadtext]]></noteHead></note>
generiert der Binding Wizard auch die Elementenklasse fur Note. Leider wird NoteHead nur eine Property fur ihm. Einer Property weis ich aber nicht CDATA Sektion zurodnen.

Sieht so aus, als ob Element mit .CreateNode fur eine CDATA noch einen Subelement braucht, um sein Namen nicht verlieren lassen.

Durch Klassen und Properties vom Binding Wizard weis ich nicht die CDATA in die .xml schreiben. Vielleicht geht es wenn ich eine gute .dtd oder .xsd selbst schreibe. Die muss ich zu erst lernen. Kommt mir komisch vor, das so eine triviale Sache wie fuhrende Leerzeichen im Text solche Probleme anschtosst.

alzaimar 30. Aug 2009 09:08

Re: Leerzeichen im string Attribute in XML Datei schreiben
 
Zitat:

Zitat von Boro
Kommt mir komisch vor, das so eine triviale Sache wie fuhrende Leerzeichen im Text solche Probleme anschtosst.

Führende Leerzeichen sind auch nicht Bestandteil einer textuellen Information, weder bei Text, noch bei Zahlen oder Datumsformaten.

himitsu 30. Aug 2009 09:20

Re: Leerzeichen im string Attribute in XML Datei schreiben
 
PS: mir ist noch 'ne mögliche Lösung eingefallen :stupid:

wie es schon bei Programm-Parametern der Fall ist, umschließt man doch einen Parameter mit ", wenn er Leerzeichen enthält.

OK, ein " ist hier nicht wirklich geeignet, aber ein anderes Zeichen tut es ja auch.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:59 Uhr.
Seite 2 von 2     12   

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