PDA

Bekijk Volledige Versie : RSS feed en extended ASCII



Eduard Bekker
25/10/04, 13:45
Beste mensen!

Voor diverse sites ben ik een rss-feed aan het maken.

Nu, blijkt de RSS-feed te staken op het moment dat er in de XML een extended
karakter verschijnt, dat tekstueel wordt aangegeven, zoals bij de á,

´

dus.

Maak ik dit numeriek, dus

´

dan werkt de feed weer.

Nu heb ik al wat handleidingen bekeken op internet, maar er wordt niet over
gerept, dat dit een probleem zou zijn.

Weet iemand misschien hoe e.e.a. Is te ondervangen?

En voor de PHP-ers:

Is er een methode om al deze tekstuele ext.ascii-labels automatisch te
vervangen door numerieke?

Bij voorbaat dank!

--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Daniel Tryba
25/10/04, 15:05
In nl.internet.www.server-side Eduard Bekker <e.bekker@layout.nl> wrote:
[/a -> &acute; -> &#180;]
> Nu heb ik al wat handleidingen bekeken op internet, maar er wordt niet over
> gerept, dat dit een probleem zou zijn.
>
> Weet iemand misschien hoe e.e.a. Is te ondervangen?

http://w3c.org/TR/2004/REC-xml-20040204/#sec-predefined-ent
http://w3c.org/TR/2004/REC-xml-20040204/#sec-references

Je zult dus je eigen DTD moeten leveren als je de HTML.

> En voor de PHP-ers:
>
> Is er een methode om al deze tekstuele ext.ascii-labels automatisch te
> vervangen door numerieke?

Zie get_html_translation_table. Daar zou het wel mee toe doen moeten
zijn.

Een betere oplossing zou zijn om gewoon UTF-8/16 te gebruiken, immers:
-volgens de XML standaard moeten alle XML processors dat begrijpen
-het is veel kleiner 2bytes ipv de 6 of 7bytes voor de acute.

Het omlullen naar utf-x in PHP kan vrijwel automatisch:
http://php.net/mb_string
of
http://php.net/iconv
of
http://php.net/recode

--

Daniel Tryba

Rijk van Geijtenbeek
25/10/04, 15:35
On Mon, 25 Oct 2004 13:35:59 +0200, Eduard Bekker <e.bekker@layout.nl>
wrote:

> Beste mensen!
>
> Voor diverse sites ben ik een rss-feed aan het maken.

RSS 0.91, 0.92, 0.93, 1.0 of 2.0?

> Nu, blijkt de RSS-feed te staken op het moment dat er in de XML een
> extended karakter verschijnt, dat tekstueel wordt aangegeven, zoals bij
> de á,
>
> &acute;
>
> dus.

Een voorbeeld feed doet wonderen. Gebruik je het description element? En
moet die als tekst of als HTML worden geinterpreteerd? RSS is geen HTML,
maar kan wel stukken HTML bevatten. Dit is bron van veel verwarring
trouwens, en een groot probleem voor de programmeurs van feedlezers omdat
de RSS spec niet duidelijk aangeeft wanneer een element HTML inhoud
kan/zal bevatten.

Buiten het HTML deel is RSS gewoon een XML dialect, en XML kent maar vijf
niet-numerieke teken-entiteitverwijzingen. Alleen &lt;, &gt;, &amp;,
&quot; en &apos; zijn geldig in XML.

> Maak ik dit numeriek, dus
>
> &#180;
>
> dan werkt de feed weer.
>
> Nu heb ik al wat handleidingen bekeken op internet, maar er wordt niet
> over gerept, dat dit een probleem zou zijn.
>
> Weet iemand misschien hoe e.e.a. Is te ondervangen?
>
> En voor de PHP-ers:
>
> Is er een methode om al deze tekstuele ext.ascii-labels automatisch te
> vervangen door numerieke?

Je kunt er ook voor kiezen om gewoon een 8-bits tekenset te gebruiken, dat
kan prima mits je aangeeft welke je gebruikt. Gebruik dan UTF-8 of
ISO-8859-15 (de laatste als je alleen westerse tekens denkt nodig te
hebben).

--
Rijk van Geijtenbeek

The Web is a procrastination apparatus:
It can absorb as much time as is required to ensure that you
won't get any real work done. - J.Nielsen

John Bokma
25/10/04, 17:25
Daniel Tryba wrote:

> Je zult dus je eigen DTD moeten leveren als je de HTML.

Nee, gewoon een goede encoding kiezen.

--
John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Website design: http://johnbokma.com/websitedesign/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html

Daniel Tryba
25/10/04, 17:35
In nl.internet.www.ontwerp John Bokma <postmaster@castleamber.com> wrote:
>> Je zult dus je eigen DTD moeten leveren als je de HTML.
>
> Nee, gewoon een goede encoding kiezen.

Wat heeft de encoding met entities te maken?

--

Daniel Tryba

Eric B. Bednarz
25/10/04, 18:05
John Bokma <postmaster@castleamber.com> writes:

> Daniel Tryba wrote:
>
>> Je zult dus je eigen DTD moeten leveren als je de HTML.
>
> Nee, gewoon een goede encoding kiezen.

Als er entity references zijn moet er een doctype declaratie zijn waar
deze ergens gedeclareerd worden; dat dit voor een XML context een vrij
stom idee is spreekt eigenlijk voor zich zelf. Hoop je dan.


--
| ) Più Cabernet,
-( meno Internet.
| ) http://bednarz.nl/

Eduard Bekker
26/10/04, 13:45
On 25-10-2004 14:58, in article clit97$8o$1@news.tue.nl, "Daniel Tryba"
<news_nl.internet.www.ontwerp@canopus.nl> wrote:


>> Is er een methode om al deze tekstuele ext.ascii-labels automatisch te
>> vervangen door numerieke?
>
> Zie get_html_translation_table. Daar zou het wel mee toe doen moeten
> zijn.

Zo te zien, doet die het net niet naar mumeriek.

--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Ronald Klip
26/10/04, 14:05
Eduard Bekker schreef:
> On 25-10-2004 14:58, in article clit97$8o$1@news.tue.nl, "Daniel Tryba"
> <news_nl.internet.www.ontwerp@canopus.nl> wrote:
>
>
> >> Is er een methode om al deze tekstuele ext.ascii-labels automatisch te
> >> vervangen door numerieke?
> >
> > Zie get_html_translation_table. Daar zou het wel mee toe doen moeten
> > zijn.
>
> Zo te zien, doet die het net niet naar mumeriek.

Als je niet met iconv, mb_string etc. kunt werken: maak zelf een array
met de tekens die je verwacht, à la

$specialcharacters = array(
"teken" => "vervanging",
"&eacute;" => "Ӓ"
);

en gebruik vervolgens strtr() om alles te vervangen:

$tekst = strtr($tekst, $specialcharacters);

--
groet, Ronald

John Bokma
26/10/04, 19:15
Ronald Klip wrote:

> Eduard Bekker schreef:
>> On 25-10-2004 14:58, in article clit97$8o$1@news.tue.nl, "Daniel
>> Tryba" <news_nl.internet.www.ontwerp@canopus.nl> wrote:
>>
>>
>> >> Is er een methode om al deze tekstuele ext.ascii-labels
>> >> automatisch te vervangen door numerieke?
>> >
>> > Zie get_html_translation_table. Daar zou het wel mee toe doen
>> > moeten zijn.
>>
>> Zo te zien, doet die het net niet naar mumeriek.
>
> Als je niet met iconv, mb_string etc. kunt werken: maak zelf een array
> met de tekens die je verwacht, à la
>
> $specialcharacters = array(
> "teken" => "vervanging",
> "&eacute;" => "Ӓ"
> );

Nogmaals, met een juiste character encoding totaal overbodig.

--
John Voorbeeldscripts in Perl: http://johnbokma.com/perl/
Website design: http://johnbokma.com/websitedesign/
Ervaren Perl / Java programmeur beschikbaar: http://castleamber.com/
Tevreden opdrachtgevers: http://castleamber.com/testimonials.html

Eduard Bekker
28/10/04, 17:45
On 26-10-2004 13:57, in article MPG.1be85a16bdef046a989886@news.xs4all.nl,
"Ronald Klip" <nieuws@bladibla.net.invalid> wrote:


> Als je niet met iconv, mb_string etc. kunt werken: maak zelf een array
> met de tekens die je verwacht, � la
>
> $specialcharacters = array(
> "teken" => "vervanging",
> "&eacute;" => "Ӓ"
> );
>
> en gebruik vervolgens strtr() om alles te vervangen:
>
> $tekst = strtr($tekst, $specialcharacters);

Duidelijk.

Bedankt. Zou zeker moeten werken.

Waarschijnlijk sneller dan;

$xml=str_replace("&acute", "’", $xml);
(in tig-voud)


--
/\/\/\/\/\/\/\/\/\
..|
..| Groetjes, Eduard
..|
\/\/\/\/\/\/\/\/\/

Daniel Tryba
28/10/04, 23:35
Eduard Bekker <e.bekker@layout.nl> wrote:
> Waarschijnlijk sneller dan;
>
> $xml=str_replace("&acute", "’", $xml);
> (in tig-voud)

Daarom kan je bij str_replace ook arrays als 1ste en 2de argument
opgeven.

--

Daniel Tryba

Jenna
29/10/04, 18:25
Doesn't FeedForAll support extended ASCII?
http://www.feedforall.com

Jenna