AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi XML Nodevalue liefert leeres Ergebnis
Thema durchsuchen
Ansicht
Themen-Optionen

XML Nodevalue liefert leeres Ergebnis

Ein Thema von Alfonso · begonnen am 30. Jul 2024 · letzter Beitrag vom 1. Aug 2024
Antwort Antwort
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#1

AW: XML Nodevalue liefert leeres Ergebnis

  Alt 31. Jul 2024, 01:35
Zitat:
bringt bei MSXML leider nichts
Ähhhhhmmmmm, also die Hilfe sagt
https://learn.microsoft.com/en-us/pr...62632(v=vs.85)


Aber vielleicht bezieht es sich auch nur auf DTD via URL, welche dann nicht geladen werden. (das innerhalb der XML ist ja bereits geladen worden)


Oder eine andere Version des MSXML-DOM nutzen?
Aber eigentlich dürfte es aktuell bereits eine v6 sein.
https://learn.microsoft.com/en-us/pr...arser-versions


Nja, man könnte notfalls vorher noch böse mit StringReplace oder RegEx am XML-Text rumpfuschen ,
also das Störende auskommentieren oder rauslöschen.
<!DOCTYPE zu <!--DOCTYPE
]> zu ]-->



Oder es alternativ mit ISAXXMLReader versuchen
und dort könnte man sich dann auch via ISAXDTDHandler noch reinhängen und es abfangen, falls es dort ebenfalls knallt.

Oder halt eine andere XML-Lib (gibt auch welche in Delphi geschrieben, wo sich fast niemand die Mühe gemacht hat DTD überhaupt zu implementieren ).
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (31. Jul 2024 um 02:01 Uhr)
  Mit Zitat antworten Zitat
Alfonso

Registriert seit: 10. Jan 2006
251 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: XML Nodevalue liefert leeres Ergebnis

  Alt 31. Jul 2024, 22:21
Vielen Dank für eure Unterstützung. Habe mich für MSXML entschieden und mit diese Proc die Entities gelöscht.

Delphi-Quellcode:
procedure TForm2.EntityLöschen(var s: string);
begin
  s := stringreplace(s, '&nbsp;', ' ', [rfReplaceAll]);
  s := stringreplace(s, '&ndash;', '-', [rfReplaceAll]);
  s := stringreplace(s, '<!DOCTYPE CUSTOMER'#13''#10'['#13''#10'<!ENTITY nbsp "*">'#13''#10''#13''#10'<!ENTITY ndash "–">'#13''#10']>', ' ', [rfReplaceAll]);
end;
Alfonso
Seit Turbo Pascal 3.0 dabei!
Ewiger Pascal Fan!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.378 Beiträge
 
Delphi 12 Athens
 
#3

AW: XML Nodevalue liefert leeres Ergebnis

  Alt 31. Jul 2024, 23:18
Die Leerstrings '' im Text sind unnötig
und es gibt ein StringReplace für Schreibfaule.

Delphi-Referenz durchsuchenStringReplace
Delphi-Referenz durchsuchenReplaceStr
Delphi-Referenz durchsuchenReplaceText
Delphi-Referenz durchsuchenstring.Replace

Delphi-Quellcode:
procedure TForm2.EntityLöschen(var s: string);
begin
  s := ReplaceStr(s, '&nbsp;', ' ');
  s := ReplaceStr(s, '&ndash;', '-');
  s := ReplaceStr(s, '<!DOCTYPE CUSTOMER'#13#10'['#13#10'<!ENTITY nbsp "*">'#13#10#13#10'<!ENTITY ndash "–">'#13#10']>', ' ');
end;
Delphi-Quellcode:
procedure TForm2.EntityLöschen(var s: string);
begin
  //s := s.Replace('&nbsp;', ' ');
  //s := s.Replace('&ndash;', '-');
  //s := s.Replace(s, '<!DOCTYPE CUSTOMER'#13#10'['#13#10'<!ENTITY nbsp "*">'#13#10#13#10'<!ENTITY ndash "–">'#13#10']>', ' ');
  s := s.Replace('&nbsp;', ' ').Replace('&ndash;', '-').Replace(s, '<!DOCTYPE CUSTOMER'#13#10'['#13#10'<!ENTITY nbsp "*">'#13#10#13#10'<!ENTITY ndash "–">'#13#10']>', ' ');
end;
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (31. Jul 2024 um 23:22 Uhr)
  Mit Zitat antworten Zitat
Alfonso

Registriert seit: 10. Jan 2006
251 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: XML Nodevalue liefert leeres Ergebnis

  Alt 1. Aug 2024, 07:09
... und wieder was gelernt.
Danke!
Alfonso
Seit Turbo Pascal 3.0 dabei!
Ewiger Pascal Fan!
  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 04:42 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