AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sonderzeichen XML-Datei

Ein Thema von BerTa · begonnen am 18. Jun 2015 · letzter Beitrag vom 25. Jun 2015
Antwort Antwort
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#1

AW: Sonderzeichen XML-Datei

  Alt 19. Jun 2015, 11:17
Wenn der CDATA-Inhalt den HTML-Inhalt darstellen soll, dann müssten dort die Umlaute doch escaped sein, oder? Also statt
Ätzlösung 100 g Oxalsäure
müsste da sowas wie
Ätzlösung 100 g Oxalsäure
stehen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Sonderzeichen XML-Datei

  Alt 19. Jun 2015, 11:40
Sobald ich die Sonderzeichen im Html umsetze, passiert nichts mehr.

Code:
<![CDATA[ <b>&Auml;tzl&ouml;sung 100 g Oxals&auml;ure/L</b></br></br></br><IMG border=0 hspace=0 alt="GHS 05" align=baseline src="http://www.gruessing-shop.de/images/image/GHS05.jpg"> <IMG border=0 hspace=0 alt="GHS 07" align=baseline src="http://www.gruessing-shop.de/images/image/GHS07.jpg">]]>
ich erhalte dann folgende Fehlermeldung:

Code:
 <![CDATA[exception 'ErrorException' with message 'simplexml_load_string(): Entity: line 20: parser error : CData section not finished
<' in /var/www/web57/html/gx2/system/classes/gambio_xml/XMLConnectAjaxHandler.inc.php:96
Stack trace:
#0 [internal function]: custom_error_handler(2, 'simplexml_load_...', '/var/www/web57/...', 96, Array)
#1 /var/www/web57/html/gx2/system/classes/gambio_xml/XMLConnectAjaxHandler.inc.php(96): simplexml_load_string('<?xml version="...')
#2 /var/www/web57/html/gx2/system/core/RequestRouter.inc.php(92): XMLConnectAjaxHandler->proceed()
#3 /var/www/web57/html/gx2/request_port.php(64): RequestRouter->proceed('XMLConnect')
#4 {main}]]>
Ich weiß nun nicht, ob es mein Fehler ist oder die Schnittstelle zum Shop fehlerhaft ist.
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Bambini
(Gast)

n/a Beiträge
 
#3

AW: Sonderzeichen XML-Datei

  Alt 19. Jun 2015, 12:39
Ich weiß nun nicht, ob es mein Fehler ist oder die Schnittstelle zum Shop fehlerhaft ist.
Von XML Seite ist das OK. Ich denke der PHP XML Parser hat da ein Problem.
Vermutlich parsed er den Inhalt der CDATA Bereiche mit und stolpert über diese Tags: </br></br></br>
In XML müssten die korrekt <br /> heißen.

Wenn das nicht klappt, würde ich versuchen, die XML Datei nicht im UTF-8 sondern ISO-8859-1 (ANSI) Format zu schreiben.
http://wiki.selfhtml.org/wiki/XML/Re...ML-Deklaration
Und die öäß... direkt verwenden.

Geändert von Bambini (19. Jun 2015 um 12:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Sonderzeichen XML-Datei

  Alt 19. Jun 2015, 12:49
XML kennt keine HTML-Entities, abgesehn von den Fünf, welche für die SGML/XML/XHTML-Kodierung zwingend nötig sind.

Code:
&quot; &amp; &apos; &lt; &gt; und &#...;
Alles Andere muß erstmal mit der Codepage des XML codiert sein und der Rest kommt auf die Codierung des HTML an.
HTML-Encoding mit UTF-8 oder mit anderem passenden Encoding, welches in die Speicherdarstelung des XML rein passt.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#5

AW: Sonderzeichen XML-Datei

  Alt 24. Jun 2015, 07:04
Hi,
ich habe gestern einmal die Indy-Komponente ersetzt und siehe da, es scheint zu funktionieren. Also wird die Komponente wohl auf irgendeine Art und Weise die XML-Dateien umsetzten.
Stellt sich nur die Frage durch welche Einstellung ich das Problem beheben kann?!

In dem Response sehen die CDATAs folgender Massen aus:
Code:
&lt;![CDATA[Wert]]&gt;
Warum wir da was durch die Indy-Komponente umgesetzt? Die soll doch ganz simple nur meine Request versenden und den Response wieder ausgeben, ohne irgendwas daran zu ändern.
alles läuft, aber nichts geht...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Sonderzeichen XML-Datei

  Alt 24. Jun 2015, 08:44
Indy ... XML ... Was machst du da eigentlich?

Das <![CDATA[ und ]]> weist du doch hoffentlich nicht als Text dem Name-Node zu?
Gibt es ein XML Schema (XSD) ?
Fragen über Fragen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
BerTa

Registriert seit: 31. Aug 2004
Ort: Dinklage
78 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: Sonderzeichen XML-Datei

  Alt 25. Jun 2015, 15:36
Hi,
ich erzeuge mir eine XML-Datei die als Request an eine URL gesendet wird.
Wenn ich die Datei erzeuge sehen die CDATAs meiner Meinung nach auch korrekt aus.
Im Response Stream erscheinen diese aber als wär es ein reiner Text.

Code:
&lt;![CDATA[Wert]]&gt;
Code:
UebXml := TXMLDocument.Create(nil);
UebXml.Active := True;
UebXml.Version := '1.0';
UebXml.Encoding := 'UTF-8';
UebXml.Options := UebXml.Options + [doNodeAutoIndent];
UebXml.DocumentElement := UebXML.CreateNode('GambioXML', ntElement, '');
UebXml.DocumentElement.AddChild('general').AddChild('function').NodeValue            := ueArt;
UebXml.DocumentElement.ChildNodes.Nodes['general'].AddChild('session_key').NodeValue := gsKey;
UebXml.DocumentElement.AddChild('parameters');
UebXml.DocumentElement.ChildNodes.Nodes['parameters'].AddChild('products');

PosXmlNode := UebXml.DocumentElement.ChildNodes.Nodes['parameters'].ChildNodes.Nodes['products'].AddChild('product');
PosXmlNode.Attributes['action'] := 'insert';
PosXmlNode.AddChild('external_product_id').NodeValue  := MyQHauptArtikelhaupt_art_nr.AsString;
     
PosXmlNode.AddChild('quantity').NodeValue    := 9999;
PosXmlNode.AddChild('price').NodeValue       := 0;
PosXmlNode.AddChild('status').NodeValue      := 1;

SetText(PosXmlNode.AddChild('name'),trim(MyQHauptArtikelbez1.AsString),'2','de','0',true);
zwNode := PosXmlNode.AddChild('name');
zwNode.Attributes['language_id'] := 2;
zwNode.Attributes['language_iso'] := 'de';
CDataNode := uebXML.CreateNode(MyQHauptArtikelbez1.AsString,ntCData);
zwNode.ChildNodes.Add(CDataNode);

RequestListe := TStringList.Create;
RequestListe.Values['gambio_api_xml'] := UebXml.XML.Text;

UebXml.Active := false;
UebXml   := nil;

lResStream := TMemoryStream.Create;
try
  HttpPostURL(ConfigRec.web_url,RequestListe.Text,lResStream);
except
  ADDMem('Fehler bei SetData "' + ueArt + '". ' );
  exit;
end;
alles läuft, aber nichts geht...
  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 07: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