Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sonderzeichen beim RSS-Parsen

0 views
Skip to first unread message

Ralf Bärsch

unread,
Nov 5, 2009, 4:55:05 AM11/5/09
to
Hallo, ich habe folgendes Problem. Beim Parsen von XML werden TITLE, die
Sonderzeichen enthalten vor dem ersten Sonderzeichen abgeschnitten.
Sonst läuft xml_parser ohne Probleme.

<--
$this->xml_parser= xml_parser_create();
xml_set_object($this->xml_parser, &$this); //Objektverweis in der Klasse
xml_set_element_handler($this->xml_parser, "startElement",
endElement"); xml_set_character_data_handler($this->xml_parser,
"characterData"); xml_parse($this->xml_parser, trim($xml), true) or
$this->rss2array_globals[errors][]=
xml_error_string(xml_get_error_code($this->xml_parser)) . " in Zeile " .
xml_get_current_line_number($this->xml_parser);
xml_parser_free($this->xml_parser);
-->

Achso, der Parser läuft in einer Klasse.
Hat jemand eine Idee warum der Schnitt passiert und wie man dass
abstellen kann?

Ralf

Helmut Blass

unread,
Nov 5, 2009, 9:54:20 AM11/5/09
to
Hallo Ralf.
genau dieses Problem hatte ich schon vor Jahren.
Offensichtlich ist der Bug immer noch nicht behoben.
Ich habe mir damals eine eigene Parser-Routine gestrickt...
Vielleicht hängt es auch irgendwie mit UTF8 zusammen.

Helmut

Ralf Bärsch

unread,
Nov 5, 2009, 10:08:28 AM11/5/09
to Helmut Blass
Helmut Blass schrieb:
Hallo Helmut,
das hängt wohl damit zusammen, dass das '&' als Trenner beim Zerlegen
von URI erkannt wird. Habe mir auch mit einem 'Kunstgriff' geholfen,
aber eben keine saubere Lösung die weiterzuempehlen nicht wert ist.

Trotzdem Danke!

Helmut Blass

unread,
Nov 5, 2009, 10:09:27 AM11/5/09
to
On 5 Nov., 16:08, Ralf Bärsch <ralf.baer...@online.de> wrote:

> Hallo Helmut,
> das hängt wohl damit zusammen, dass das '&' als Trenner beim Zerlegen
> von URI erkannt wird. Habe mir auch mit einem 'Kunstgriff' geholfen,
> aber eben keine saubere Lösung die weiterzuempehlen nicht wert ist.

Das Problem tritt nicht nur beim '&' auf, sondern auch bei deutschen
Umlauten!

Helmut

Ralf Bärsch

unread,
Nov 5, 2009, 10:17:12 AM11/5/09
to
Helmut Blass schrieb:

Ä = &Auml; usw. , genau das ist der Hintergrund!
Aus '&Auml;' wird '&\nAuml;' und 'Auml;' steht für den Parser in der
nächsten Zeile :(

Ralf

Stefan Dreyer

unread,
Nov 5, 2009, 10:48:31 AM11/5/09
to
Ralf Bᅵrsch wrote:
> Hallo, ich habe folgendes Problem. Beim Parsen von XML werden TITLE, die
> Sonderzeichen enthalten vor dem ersten Sonderzeichen abgeschnitten.
> Sonst lᅵuft xml_parser ohne Probleme.

>
> <--
> $this->xml_parser= xml_parser_create();
> xml_set_object($this->xml_parser, &$this); //Objektverweis in der Klasse
> xml_set_element_handler($this->xml_parser, "startElement",
> endElement"); xml_set_character_data_handler($this->xml_parser,
> "characterData"); xml_parse($this->xml_parser, trim($xml), true)
> or $this->rss2array_globals[errors][]=
> xml_error_string(xml_get_error_code($this->xml_parser)) . " in Zeile " .
> xml_get_current_line_number($this->xml_parser);
> xml_parser_free($this->xml_parser);
> -->
>
> Achso, der Parser lᅵuft in einer Klasse.

> Hat jemand eine Idee warum der Schnitt passiert und wie man dass
> abstellen kann?

Erzeugst Du den RSS-Feed denn selbst? Dann wᅵrde ich da <!CDATA... drum
setzen, dann sollte es keine Probleme geben.

Ralf Bärsch

unread,
Nov 5, 2009, 10:53:26 AM11/5/09
to
Stefan Dreyer schrieb:

> Ralf Bärsch wrote:
>> Hallo, ich habe folgendes Problem. Beim Parsen von XML werden TITLE,
>> die Sonderzeichen enthalten vor dem ersten Sonderzeichen
>> abgeschnitten. Sonst läuft xml_parser ohne Probleme.

>>
>> <--
>> $this->xml_parser= xml_parser_create();
>> xml_set_object($this->xml_parser, &$this); //Objektverweis in der
>> Klasse xml_set_element_handler($this->xml_parser, "startElement",
>> endElement"); xml_set_character_data_handler($this->xml_parser,
>> "characterData"); xml_parse($this->xml_parser, trim($xml),
>> true) or $this->rss2array_globals[errors][]=
>> xml_error_string(xml_get_error_code($this->xml_parser)) . " in Zeile "
>> . xml_get_current_line_number($this->xml_parser);
>> xml_parser_free($this->xml_parser);
>> -->
>>
>> Achso, der Parser läuft in einer Klasse.

>> Hat jemand eine Idee warum der Schnitt passiert und wie man dass
>> abstellen kann?
>
> Erzeugst Du den RSS-Feed denn selbst? Dann würde ich da <!CDATA... drum
> setzen, dann sollte es keine Probleme geben.

Nein, ich habe auf die Quelle keinen Einfluss.

0 new messages