Toon posts:

[atom] entities in feeds

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik ben een atom feedje aan het opzetten voor m'n site, af en toe gaat dat over html en dus zitten er entities als < > en & in.

Door sommige readers worden deze echter doodleuk geparsed, de enige die dat niet doet is eigenlijk feed demon.

is er iets dat ik fout doe in m'n xml (en doet feed demon gewoon aan foutcorrectie)? of ligt dit probleem bij de readers?

m'n feed staat hier: http://www.rikkertkoppes.com/atomfeed.php
even als application/xml geserveerd, dan kijkt het iets handiger, normaal is dit application/atom+xml.

speaking of it, zou het geen application/atom+xhtml+xml moeten zijn oid?

Verwijderd

ik ben een atom feedje aan het opzetten voor m'n site, af en toe gaat dat over html en dus zitten er entities als < > en & in.
Euhm. HTML entiteiten gaan niet werken. De 5 XML entiteiten wel.
speaking of it, zou het geen application/atom+xhtml+xml moeten zijn oid?
Het root-element bepaald het MIME type.

Edit: mierenneukermodus aan. Even over dat berichtje hieronder. Dat zijn geen entiteiten, maar karakter referenties (hexadecimal/decimal character references).

[ Voor 21% gewijzigd door Verwijderd op 05-12-2004 18:52 . Reden: mierenneukermodus ]


Verwijderd

Waarom maak je er niet decimale of hexadecimale entities van? Dan heb je nooit dit soort gedoe.

Verwijderd

Topicstarter
code:
1
2
3
4
5
<!ENTITY lt     "&#60;">
<!ENTITY gt     ">">
<!ENTITY amp    "&#38;">
<!ENTITY apos   "'">
<!ENTITY quot   """>

die 5 dus

ik gebruik ook geen anderen. Dus nu weet ik nog steeds niet waarom deze niet werken.

@Cheatah, da's een fallback optie, kan altijd nog, maar ik ben op zoek naar de oorzaak van het probleem. Ligt het bij de readers of zit ik ergens fout.

@anne over mime: weer wat geleerd :D

Verwijderd

Als je de oorzaak van het probleem wilt vinden, moet je er even decimale of hexadecimale dingesen (;)) van maken. Als het dan wèl werkt, dan heb je je probleem, dan is Feed Demon een beetje rot.

Maar daar je toch maar 5 standaard entity references hebt, kun je wat mij betreft sowieso het best even een eigen "escape" functie maken die alles numeriek doet.

Verwijderd

Topicstarter
zo, ik heb het maar eens geprobeerd, en het boeit helemaal niets. Nog steeds wordt mijn HTML geparsed.

For the record: feed demon doet het wel, andere feed readers juist niet

Verwijderd

Topicstarter
na wat getest te hebben:

<p> wordt gerenderd
<p> wordt ook gerenderd
<p> wordt ook gerenderd
&lt;p&gt; wordt gerenderd als "<p>"

zit er iets fout in m'n xml ofzo? ik heb wel in de content van een bericht (waar xhtml in staat), een aparte namespace toegevoegd
code:
1
2
3
4
5
<content type="application/xhtml+xml">
  <div xmlns="http://www.w3.org/1999/xhtml">
 ...
  </div>
</content>

maar als ik die weg laat gaat het sowieso overal fout (en het lijkt mij dat ie er wel in moet)

Verwijderd

Topicstarter
Opgelost door de hele html zooi in <![CDATA[..]]> blokken te stoppen.

Kan iemand me uitleggen waarom? want dit vind ik wel een beetje raar aan de ene kant.

Aan de andere kant zou ik zeggen: die html is geen direct onderdeel van de feed, het is gewoon content. De feedreader zou naar die content uit de feed moeten halen en er vervolgens z'n ding mee gaan doen. In die zin is het ergens wel logisch.

Verwijderd

CDATA hiervoor gebruiken is fout. Report liever een bug.Binnen Atom moet je gewoon XML (dus ook XHTML) kunnen gebruiken. Dat hoef je niet opeens op een rare manier te doen omdat een of andere aggregator een bugje heeft.

Verwijderd

Door CDATA blokken te gebruiken zul je trouwens in aggregators die het correct ondersteunen je XHTML letterlijk terugzien.

Verwijderd

Topicstarter
de 4 die ik testte doen het allemaal zo, verder is het me niet helemaal duidelijk hoe aggregators de feed zouden moeten lezen.

als ze content moeten zien als blackbox content en deze vervolgens parsen lijken mij die CDATA blokken op z'n plaats (net zoiets als embedded js of css, deze wordt ok in tweede instantie geparsed).

als de content gezien moet worden als integraal onderdeel van de xml, dan ben ik het met je eens dat die CDATA er niet hoort.

feit is, dat alle geteste readers het alleen zo snappen, ook degene die de entities in eerste instantie al goed intepreteerden (feed demon)

andere geteste readers zijn rssReader, FeedReader en Sage

Verwijderd

Het is geen JS, het is inhoud. Het is jammer dat Mark Pilgrim z'n feed een 410 teruggeeft, maar hij had er een mooi voorbeeldje van.
Pagina: 1