AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi String Value prüfen auf XML Konformität
Thema durchsuchen
Ansicht
Themen-Optionen

String Value prüfen auf XML Konformität

Ein Thema von sirarcher · begonnen am 1. Feb 2008 · letzter Beitrag vom 14. Feb 2008
 
sirarcher

Registriert seit: 7. Mär 2007
22 Beiträge
 
#5

Re: String Value prüfen auf XML Konformität

  Alt 14. Feb 2008, 13:52
Zitat von Muetze1:
Ich frage mich, warum du diese Prüfung machen müsstest? Der Text sind Daten und werden somit an einen Knoten als Wert weiter gegeben. Dabei hat die XML Bibliothek dafür zu sorgen, dass die eingehenden Daten entpsrechend escaped werden (also [b] -> <b>) und somit hat der Parser auch kein Problem. Die XML Bibliothek stellt sich schliesslich nicht selber ein Bein. Beim einlesen einer solchen Datei wandelt die Bibliothek beim Zugriff auf den Knotenwert alles wieder zurück und es erscheint der Originale Inhalt der beim Schreiben dem Knotenwert zugewiesen wurde...
Hallo,

ich habe es nun mit dem Parsen mittels XML umgesetzt:

Delphi-Quellcode:
  
var
  xmlDoc: IDOMDocument;
begin
  try
    xmlDoc := LoadXMLDocument(strFileName).DOMDocument;
  except
    on e: Exception do begin
    //Ausgabe bzw. Weiterverarbeitung von: e.Message
  ...
vorher habe ich alle schon escaped Daten zurückgesetzt.

Hintergrund war/ist, das die User gewisse Tags in einem Programm verwenden dürfen (html tags) zur Darstellung im Firmeninternen Intranet. Mittels diesen Daten werden dann aber auch PDF's generiert wo der Text auch dort so Formatiert dargestellt wird.

Nur beim PDF erzeugen brauche ich ein sauberes XML File, im Intranet ist es dem Browser (blöd gesagt) egal, der mache keine Probleme.

Aber somit kann ich das ganze XML prüfen. Danke nochmals fürn tipp, hätte selber daran denken können/sollen.

PS: Mit folgendem Code wandel ich vorher die Zeichen (welche zugelassen sind) zurück:

Delphi-Quellcode:
var
  stlXmlFile: TStringList;
  intCount: integer;
  strMeldungsText: string;
  xmlDoc: IDOMDocument;
begin
  //XML DATEN PRÜFEN (EIGENE KLASSE MACHEN)
  stlXmlFile := TStringList.Create;
  stlXmlFile.LoadFromFile(strFileName);
  for intCount := 0 to stlXmlFile.Count -1 do begin
    //BR
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '<br />', '&#xA;');
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '<br>', '&#xA;');
    //FETT
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '<b>', '[b]');
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '</b>', '[/b]');
    //UNTERSTRICHEN
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '<u>', '<u>');
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '</u>', '</u>');
    //KURSIV
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '<i>', '[i]');
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '</i>', '[/i]');
    //LEERZEICHEN
    stlXmlFile.Strings[intCount] := objReplace.ReplaceWideStr(stlXmlFile.Strings[intCount], '%SPACECHARACTER%', '*');
  end;

  stlXmlFile.SaveToFile(strFileName);


  try
    xmlDoc := LoadXMLDocument(strFileName).DOMDocument;
  except
    on e: Exception do begin
       //Wenn keine Werte zurückkommen muss das Programm beendet werden.
      strMeldungsText := '<FONT face="Arial"><FONT size="18">'
        + '[b]XML Check (Custom formating tag''s)[/b]</FONT>'
        + '

'
        + '<FONT size="10">'
        + '<FONT color="#FF0000">[B]<textarea>' + e.Message + '</textarea>[/B]</FONT>'
        + '

'
        + 'Please contact your key user or IT adminstrator.'
        + '</FONT></FONT>';
      Main.ShowWarningWindow(strMeldungsText);
      end;
  end;
  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 07:17 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 by Thomas Breitkreuz