![]() |
Leerzeichen im string Attribute in XML Datei schreiben
Hi,
ich versuche mit TXMLDocument Daten, meistens Texte, ins XML Datei zu schreiben. Leider verliere ich dabei die Leerzeichen am Anfang des Textes. Z.B.
Delphi-Quellcode:
endet in der XML Datei als <knoten attrib="meintext" /> anstatt <knoten attrib=" meintext" />
var MyNode: IXMLNode;
MyNode.SetAttribute('attrib',' meintext'); Wie kann ich text wie ' etwas' auch mit Leerzeichen am Anfang ins XML Detei speichern? Danke fur jeden hinweis. Boro |
Re: Leerzeichen im string Attribute in XML Datei schreiben
Und was machen wir, wenn jemand im anderen Forum antwortet?
|
Re: Leerzeichen im string Attribute in XML Datei schreiben
Zitat:
|
Re: Leerzeichen im string Attribute in XML Datei schreiben
Zitat:
![]() MfG, Bug |
Re: Leerzeichen im string Attribute in XML Datei schreiben
Zitat:
Wuste nicht das es mit dem Link so geht. Danke. Hoffe, das ich nicht irw Regel brach auch an anderes Forum die Frage zu stellen. Wenn ja, dann bitte ich um Verzeihung. |
Re: Leerzeichen im string Attribute in XML Datei schreiben
Crosspostings sind nicht schlimm, nur sollte man sie auch verlinken, damit man sieht, was schon beantwortet wurde.
|
Re: Leerzeichen im string Attribute in XML Datei schreiben
Laut XML-Standard werden führende und anhängende Leerzeichen innerhalb eines Attributes entfernt:
![]() Zitat:
Wenn du die Leerzeichen brauchst, dann ist es kein Attribut sondern ein Element. |
Re: Leerzeichen im string Attribute in XML Datei schreiben
<[CDATA[ ginge
erstell dir eine DTD (Document Type Definition) und definier dein Attribut als #DATA MSXML sollte diese entsprechend behandeln maskiere die Leerzeichen himXML kann das aktuell noch ist zwar eine Änderung geplant, aber weiter unten auf der ToDo-Liste und wenn, dann soll dieses Verhalten abschaltbar sein |
Re: Leerzeichen im string Attribute in XML Datei schreiben
Danke an sx2008 und himitsu.
Zitat:
Zitat:
Ehrlich gesagt, im Binding Wizard sehe ich fuer Daten Typ des Elementen (Node) keine Wahl Zitat:
Die XML Datei brauch ich fur Export der Daten aus mehreren Tabellen zusammen in einer Datei und Hierarchie die einer Relation entspricht. Im Prinzip dachte ich, das ein Datensatz von der Tabelle ein Element sein soll und die Feldern sollen die Attributen sein. Zitat:
Zitat:
Zitat:
|
Re: Leerzeichen im string Attribute in XML Datei schreiben
Zitat:
Zitat:
aber es gibt für Text diese Möglichkeiten
XML-Code:
wobei man in CDATA die wenigsten Beschränkungen hat und auch keine Normalisierung durchgeführt wird
<node attr="text" />
<node>text</node> <node><[CDATA[text]]></node> <[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 bei mir (himXML) wäre das recht einfach über Node.asCDATA(True); zu lösen (muß man nur einmal beim Erstellen des Nodes machen) und ab dann werden alle Aufruve von Node.Text und Co. an einen untegeordneten CDATA-Node weitergeleitet und dieser CDATA-Node wird notfalls noch erstellt. zum Thema "Konvertieren" mit StringReplace vorm Zuweisen die Leerzeichen in was Anderes umwandeln und nach dem Auslesen zurück wenn du es schaffst, daß Leerzeichen als HTML-Code in die XML-Datei reinzubekommen, ohne daß dieses & maskiert wird, dann ginge es auch darüber. <b attr=" xyz"/> ... aber MSXML maskiert normaler Weise einige Zeichen, wie z.B. das & und bei .Attributes['attr'] := ' xyz'; steht dann sowas <b attr="&#32;xyz"/> in der Datei. aber wenn du es schaffst mindestens das erste Leerzeichen als   in die XML-Datei reinzubekommen, dann wandelt dir MSXML dieses   automatisch beim Auslesen in ein Leerzeichen um und entfernt auch dieses und nachfolgene Leerzeichen nicht mehr. also nur beim Zuweisen mußt du etwas beachten und Auslesen geht dabei ohne Probleme/Umwandlung. wenn du diese Datei ausließt, dann bekommst du '****xyz' als Attribut-Text zurück ... und es sollte auch für normalen NodeText gelten
Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<a> <b attr="[b]&[/b]#32; xyz"/> [b][b]&[/b]#32; xyz</c> </a> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 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