Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Sonderzeichen XML-Datei (https://www.delphipraxis.net/185528-sonderzeichen-xml-datei.html)

BerTa 18. Jun 2015 15:46

Sonderzeichen XML-Datei
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,
ich bin zur Zeit dabei einen Webshop-Abgleich zu programmieren und bekomme das Problem mit den Sonderzeichen irgendwie nicht in den Griff.
Unter Verwendung der GambioXML-Schnittstelle bekomme ich es zur Zeit nicht hin, dass nachdem Einspielen von Artikeln die Bezeichnungen und Beschreibungen korrekt dargstellet werden.
Wie muss ich die Sonderzeichen übergeben, sodass hier keine Probleme entsteht??
In der Datei enthält nur noch die description Sonderzeichen, aber der Name sollte auch korrekt geschrieben werden.

Anbei habe ich einmal eine Datei angehängt, wie sie momentan erzeugt wird.

Schöne Grüsse

Bambini 18. Jun 2015 16:57

AW: Sonderzeichen XML-Datei
 
Zitat:

Zitat von BerTa (Beitrag 1305572)
...Artikeln die Bezeichnungen und Beschreibungen korrekt dargstellet werden.
Wie muss ich die Sonderzeichen übergeben, sodass hier keine Probleme entsteht??
In der Datei enthält nur noch die description Sonderzeichen, aber der Name sollte auch korrekt geschrieben werden.

Die XML im UTF-8 Format Datei sieht gut aus.
Was für Probleme gibt es denn?

BerTa 19. Jun 2015 07:40

AW: Sonderzeichen XML-Datei
 
Ich habe das Problem, dass die Sonderzeichen nicht korrekt dargestellt werden:

Hier gehts zum Artikel

p80286 19. Jun 2015 08:08

AW: Sonderzeichen XML-Datei
 
Mmm Meiner Auffassung nach ist da alles in Ordnung. Du übergibst
Code:
<name language_id="1" language_iso="en" type="0">
          <![CDATA[Aetzloesung 100 g Oxalsaeure/L]]>
        </name>
und
Code:
 <description language_id="1" language_iso="en" type="2">
          <![CDATA[<b>Ätzlösung 100 g Oxalsä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">]]>
        </description>
Und das ist was Du bekommst. Du solltest Dir also mal die Generierung der CDATAs anschauen.

Gruß
K-H

Bambini 19. Jun 2015 12:06

AW: Sonderzeichen XML-Datei
 
Zitat:

Zitat von BerTa (Beitrag 1305635)
Ich habe das Problem, dass die Sonderzeichen nicht korrekt dargestellt werden:

Hier gehts zum Artikel

Das Problem ist bei der Darstellung auf der verlinkten Webseite?
Sieht nach PHP aus. Liest die PHP Seite deine Delphi XML Datei und serviert die?
Dann vermute ich, das der PHP Code ein Problem mit der UTF8 XML Datei hat.
Vielleicht kannst du die im ANSI format schreiben?

Uwe Raabe 19. Jun 2015 12:17

AW: Sonderzeichen XML-Datei
 
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
&Auml;tzl&ouml;sung 100 g Oxals&auml;ure
stehen.

BerTa 19. Jun 2015 12:40

AW: Sonderzeichen XML-Datei
 
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.

Bambini 19. Jun 2015 13:39

AW: Sonderzeichen XML-Datei
 
Zitat:

Zitat von BerTa (Beitrag 1305678)
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.

himitsu 19. Jun 2015 13:49

AW: Sonderzeichen XML-Datei
 
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.

BerTa 24. Jun 2015 08:04

AW: Sonderzeichen XML-Datei
 
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.

himitsu 24. Jun 2015 09:44

AW: Sonderzeichen XML-Datei
 
Indy ... XML ... Was machst du da eigentlich?

Das
Delphi-Quellcode:
<![CDATA[
und
Delphi-Quellcode:
]]>
weist du doch hoffentlich nicht als Text dem Name-Node zu?
Gibt es ein XML Schema (XSD) ?
Fragen über Fragen.

BerTa 25. Jun 2015 16:36

AW: Sonderzeichen XML-Datei
 
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;


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