AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi TXMLDocument verändert beim Einlesen Entitäten!
Thema durchsuchen
Ansicht
Themen-Optionen

TXMLDocument verändert beim Einlesen Entitäten!

Ein Thema von Ralf107 · begonnen am 4. Dez 2008 · letzter Beitrag vom 5. Dez 2008
Antwort Antwort
Ralf107

Registriert seit: 17. Mär 2008
Ort: Berlin
4 Beiträge
 
Delphi 7 Professional
 
#1

TXMLDocument verändert beim Einlesen Entitäten!

  Alt 4. Dez 2008, 16:12
Ich verwende in einem XML-Dokument Entitäten, um Sonderzeichen zu generieren:
  <Beispiel>Bla&#13;Fasel</Beispiel> Wenn ich den Inhalt mit
Delphi-Quellcode:
var
  pNode : IXMLNode;
  sText : String;
begin
  ...
  sText := pNode.Text;
auslese, bekomme ich
Code:
'Bla'#10'Fasel'
zurück!

Wie kann ich die Umwandlung von #13 (CR) in #10 (LF) verhindern?
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TXMLDocument verändert beim Einlesen Entitäten!

  Alt 4. Dez 2008, 16:21
Was stört dich daran? Ich finde es von Vorteil wenn der parser automatisch beim Lesen/Schreiben Sonderzeichen korrekt wandelt so das du im eigenen Code nix mehr machen mußt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Ralf107

Registriert seit: 17. Mär 2008
Ort: Berlin
4 Beiträge
 
Delphi 7 Professional
 
#3

Re: TXMLDocument verändert beim Einlesen Entitäten!

  Alt 5. Dez 2008, 07:43
Zitat von Bernhard Geyer:
Ich finde es von Vorteil wenn der parser automatisch beim Lesen/Schreiben Sonderzeichen korrekt wandelt so das du im eigenen Code nix mehr machen mußt.
Was ist daran korrekt, wenn der Parser aus einem ein #10 macht

Im eigenen Code müsste ich die #10 wieder in eine #13 zurückwandeln. Das geht jedoch nicht, da ich nicht weiß, ob im XML-Dokument wirklich oder vieleicht steht.

Ich habe gerade ein paar weitere Entitäten durchprobiert. Bei einigen funktioniert es korrekt ( ), bei anderen löst der Parser sogar eine Exception aus ( ).

Da hilft wohl nur die Definition zusätzlicher XML-Elemente:<cr/><lf/><char id="6">... .
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: TXMLDocument verändert beim Einlesen Entitäten!

  Alt 5. Dez 2008, 08:40
Zitat von Ralf107:
Was ist daran korrekt, wenn der Parser aus einem
ein #10 macht
Ok, da hab ich nicht komplett gelesen. Hab gemeint du meinst allgmein die Wandlung.

Gibt es da ein Propertie wie beatify das du abschalten könntest?

Zitat von Ralf107:
Ich habe gerade ein paar weitere Entitäten durchprobiert. Bei einigen funktioniert es korrekt ( ), bei anderen löst der Parser sogar eine Exception aus ( ).
Kann es sein das #12 XML-Technisch nicht erlaubt ist? Wenn du solche Sonderzeichen öfter hast würde sich u.U. ein CData-Segment anbieten in dem du es z.B. Hex-Codiert ablegst.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Ralf107

Registriert seit: 17. Mär 2008
Ort: Berlin
4 Beiträge
 
Delphi 7 Professional
 
#5

Re: TXMLDocument verändert beim Einlesen Entitäten!

  Alt 5. Dez 2008, 11:09
Zitat von Bernhard Geyer:
Gibt es da ein Propertie wie beatify das du abschalten könntest?
Es gibt nur eine Option "PreserveWhitespace". Wenn ich die Option einschalte, bleiben alle Whitespace incl. Zeilenumbrüchen erhalten. Bei
XML-Code:
<Beispiel>
  <bla>
    <fasel>xyz</fasel>
  </bla>
</Beispiel>
enthält <bla> dann die drei Childnodes "#13' '", <fasel> und "#13' '" statt nur den einen Childnode <fasel>.

Zitat von Bernhard Geyer:
Kann es sein das #12 XML-Technisch nicht erlaubt ist?
Das Zeichen #12 ist in XML-Dateien nicht erlaubt. Die Entitäten dienen doch aber gerade dazu, unerlaubte Zeichen darzustellen

Zitat von Bernhard Geyer:
Wenn du solche Sonderzeichen öfter hast würde sich u.U. ein CData-Segment anbieten in dem du es z.B. Hex-Codiert ablegst.
Mit CDATA wird mir die XML-Datei beim Editieren zu unübersichtlich. Da eigendlich nur HT(#9) und CR(#13) vorkommen, und korrekt funktioniert, habe ich einfach ein <cr/> eingeführt.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:01 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