Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   TXmlDocument: ">" nicht ersetzen durch ">" (https://www.delphipraxis.net/191004-txmldocument-nicht-ersetzen-durch-gt%3B.html)

hoika 29. Nov 2016 09:50

TXmlDocument: ">" nicht ersetzen durch ">"
 
Hallo,

"3>2" wird beim Schreiben mit TXmlDocument ersetzt durch "3>2".

Wie kann ich das Verhindern?


Danke

Bernhard Geyer 29. Nov 2016 10:04

AW: TXmlDocument: ">" nicht ersetzen durch ">"
 
Gar nicht.
Würde das nicht ersetzt hättest du eine defekte XML-Datei

Der schöne Günther 29. Nov 2016 10:06

AW: TXmlDocument: ">" nicht ersetzen durch ">"
 
Hoffentlich gar nicht? 8-)

Oder verstehe ich etwas falsch? Du kannst doch nicht einfach unmaskiert da spitze Klammern reinpacken.

Alternativ gibt es CDATA: https://www.tutorialspoint.com/de/xm...a_sections.htm

himitsu 29. Nov 2016 10:57

AW: TXmlDocument: ">" nicht ersetzen durch ">"
 
Jupp, das ist in XML ein "Steuerzeichen" und es muß immer maskiert werden.

Selbst in HTML müsste es prinzipiell maskiert werden, aber die HTML-Parser sind fehlertollerant, weil viele Webentwickler doof sind, aber die Browserhersteller lieber was Falsches anstatt garnichts anzeigen wollen.
In XHTML muß es auch "zwingend" maskiert werden, damit der Code valide ist.

Nur in DATA/CDATA-Blöcken hat man mehr Freiheiten.

hoika 29. Nov 2016 12:23

AW: TXmlDocument: ">" nicht ersetzen durch ">"
 
Hasllo,
erzähl das mal der Zertifizierungsstelle,
die das bei mir angemeckert hat ...

himitsu 29. Nov 2016 13:26

AW: TXmlDocument: ">" nicht ersetzen durch ">"
 
Hier deine Antwort, für diese Leute:
https://www.w3.org/TR/REC-xml/#syntax

[EDIT]
Neee, stimmt > muß nicht immer maskiert werden, aber kann,
und < muß immer.

Aber jeder XML-Parser muß mit den 5 Steuerzeichen in TEXT und Attribut-Value klar kommen.
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;

Uwe Raabe 29. Nov 2016 14:07

AW: TXmlDocument: ">" nicht ersetzen durch "&gt;"
 
Zitat:

Zitat von hoika (Beitrag 1354922)
Hasllo,
erzähl das mal der Zertifizierungsstelle,
die das bei mir angemeckert hat ...

Dann zeig doch mal die Spezifikation, die für diese Zertifizierung als Grundlage dient.

sakura 29. Nov 2016 14:09

AW: TXmlDocument: ">" nicht ersetzen durch "&gt;"
 
Zitat:

Zitat von hoika (Beitrag 1354922)
Hasllo,
erzähl das mal der Zertifizierungsstelle,
die das bei mir angemeckert hat ...

Was genau haben die angemeckert? Und mit welcher Begründung.

XML ist ein Standard und die meisten Parser werden ein Problem haben, wenn das ">" nicht kodiert wird. Wie schon oben angemerkt, JEDER Parser muss mit den definierten Codes zurecht kommen. Würden die Zeichen nicht kodiert werden, kann man kein brauchbares XML erwarten.

Evtl. ist ja wirklich das CDATA Deine Lösung.
Nebenwirkungen:
  • ]]> darf im Inhalt nicht vorkommen (damit wird das CDATA geschlossen)
  • XML Datei wird wahrscheinlich spürbar größer
...:cat:...

hoika 29. Nov 2016 17:29

AW: TXmlDocument: ">" nicht ersetzen durch "&gt;"
 
Hallo,
mein Fehler,
die haben was anderes angemeckert, das &gt; soll bleiben.

Danke.

sakura 29. Nov 2016 19:40

AW: TXmlDocument: ">" nicht ersetzen durch "&gt;"
 
Zitat:

Zitat von hoika (Beitrag 1354950)
mein Fehler,
die haben was anderes angemeckert, das &gt; soll bleiben.

:mrgreen: Sh*t happens ;)

...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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