Avatar billede encorez Nybegynder
06. juni 2006 - 11:35 Der er 5 kommentarer og
1 løsning

Fjern XML kode

Jeg vil have nogle feeds på min hjemmeside. Description til hver feed vil jeg gerne have vist en boks når man holder musen over linket. Den normale man kan lave en "title" er kun fremme nogle få sekunder og det er ikke nok, så jeg har fået anbefalet en fra http://www.bosrup.com/web/overlib/.
Problemet er at hvis der er noget kode snask i den description fra feed'et så virker scriptet ikke.

Jeg har f.eks. store problemer med feed'et fra TV2 - http://nyhederne.tv2.dk/rss/nyhederne.xml

Her er 2 forskellige eksempler fra tv2:
2 eksempler fra description fra tv2s feeds:
- <description>
- <![CDATA[
<p><img src="http://i2-images.tv2.dk/s/14/880514-61ac3aa4ddb0b46b1b034a22172b4840.jpeg" width="116" height="50" /></p>
<p>Svejseudstyr kan måske årsag til den brand, der udbrød i Storebæltstunnelen i går. Politiet efterforsker netop nu brandårsagen.</p>

  ]]>
  </description>

-----------------------------
- <![CDATA[ <p>Det var en fåmælt Annemette Hommel, der i dag mødte op til i Østre Landsret for at få omstødt en dom for at bruge torturlignende metoder under afhøringer i Irak</p>
  ]]>


Den øverste virker ikke. Den nederste gør. Jeg tror efter at have set en del flere igennem, at det er når der er et linieskift efter "<![CDATA[ " at scriptet ikke forstår det. Jeg forsøgt med alverdens funktioner fra PHP at fjerne diverse HTML koder fra description. Jeg vil f.eks. også have fjernet html formateringer for det forstår scriptet heller ikke.

Husk, det er lykkes mig at fjerne alle html koder. Men alligevel er der linieskift, OGSÅ inde mit i teksten og det forstår scriptet ikke.

Så hvordan fjerne jeg et linieskift i koden, når der ikke engang står <br>.
Avatar billede iss Novice
06. juni 2006 - 11:52 #1
Når jeg har rodet med XML i PHP har jeg altid brugt: http://www.hansanderson.com/php/xml/ og har til dato ingen problemer haft med det. Det er bare ment som at du kan prøve om Hans' script hjælper dig.
Avatar billede olebole Juniormester
06. juni 2006 - 19:48 #2
<ole>

- og ellers kan du vel altid skrive:

$str = "<![CDATA[ <p>Det var en fåmælt Annemette Hommel, der i dag mødte op til i Østre Landsret for at få omstødt en dom for at bruge torturlignende metoder under afhøringer i Irak</p>
  ]]>";

$str = preg_replace("\r|\n", "", $str);

// Nu skulle der ikke være linjeskift tilbage i strengen

/mvh
</bole>
Avatar billede encorez Nybegynder
06. juni 2006 - 22:32 #3
Hej ole

Jeg har nu forsøgt først at bruge nl2br, derefter strip_tags, og derefter fjernet \r og \n men lige lidt hjælper det. Når jeg går ind og se den afviklede kode på min hjemmeside, så er der stadig et dobbelt linieskift midt inde i strengen.

I nogle af mine andre feeds er linieskiftet der i starten. Og så virker det heller ikke.

Har du flere forslag
Avatar billede olebole Juniormester
07. juni 2006 - 00:26 #4
Ja, at du lægger et link til dokumentet, så vi kan se, hvad det er for tegn. Det kan i hvertfald ikke være almindelige linjeskift  :)
Avatar billede encorez Nybegynder
07. juni 2006 - 19:19 #5
Se det link jeg har lagt i mit spørgsmål til TV2's rss feed:
http://nyhederne.tv2.dk/rss/nyhederne.xml

Pt. er de 4 øverste feeds følgende kode:
- <item>
  <title>Gymnastikinstruktør krænkede piger</title>
  <link>http://nyhederne.tv2.dk/article.php?id=4249006&rss</link>
- <description>
- <![CDATA[ <p>En 36-årig springgymnastikinstruktør fra Sønderjylland er ved Vestre Landsret kendt skyldig i to tilfælde af blufærdighedskrænkelser over for 12-årige piger.</p>
  ]]>
  </description>
  <guid isPermaLink="true">http://nyhederne.tv2.dk/article.php?id=4249006&rss</guid>
  <pubDate>Wed, 7 Jun 2006 18:20:00 +0200</pubDate>
  </item>
- <item>
  <title>Rumænere dømt for gruppevoldtægt</title>
  <link>http://nyhederne.tv2.dk/article.php?id=4248988&rss</link>
- <description>
- <![CDATA[
<p>Tre rumænske mænd er ved en domsmandsret blevet idømt to et halvt års fængsel hver og efterfølgende udvisning af Danmark for bestandig.<br />
<br />
Mændene, der er i alderen 19 til 27 år, blev dømt for en grov gruppevoldtægt af en 25-årig kvinde i Næstved.</p>

  ]]>
  </description>
  <guid isPermaLink="true">http://nyhederne.tv2.dk/article.php?id=4248988&rss</guid>
  <pubDate>Wed, 7 Jun 2006 18:13:00 +0200</pubDate>
  </item>
- <item>
  <title>Dreng dræbt under traktor</title>
  <link>http://nyhederne.tv2.dk/article.php?id=4248979&rss</link>
- <description>
- <![CDATA[
<p>En fireårig dreng mistede livet, da han blev kørt over af en traktor.<br />
<br />
Ulykken skete i Ledøje sydvest for Ballerup, og politiet var i et par timer ikke klar over, hvordan ulykken var sket.</p>

  ]]>
  </description>
  <guid isPermaLink="true">http://nyhederne.tv2.dk/article.php?id=4248979&rss</guid>
  <pubDate>Wed, 7 Jun 2006 18:07:00 +0200</pubDate>
  </item>
- <item>
  <title>Syvårig bag brand i 20 boliger</title>
  <link>http://nyhederne.tv2.dk/article.php?id=4248537&rss</link>
- <description>
- <![CDATA[ <p>En kun syvårig dreng i Ribe stod bag den millionbrand, der tirsdag raserede 20 ungdomsboliger på Skyttevej på Ribe Nørremark, skriver JydskeVestkysten.</p>
  ]]>
  </description>
  <guid isPermaLink="true">http://nyhederne.tv2.dk/article.php?id=4248537&rss</guid>
  <pubDate>Wed, 7 Jun 2006 16:46:00 +0200</pubDate>
  </item>

Med overlib viser den en popup boks ved den første og den sidste. Ikke de to midterste. Det eneste mønster jeg kan finde er at det går galt når der et linieskift.
Avatar billede encorez Nybegynder
17. juni 2006 - 17:35 #6
Intet har virket, desværre. Der er fortat noget i koden i "description" fra nogle siders RSS Feeds, som overlib ikke forstår at vise.
Jeg lukker spørgsmålet.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester