webForumDet fria alternativet

RSS Fel

XML

10 svar · 746 visningar · startad av McD

Medlem sedan mars 20002 520 inlägg
Frågan#1

Halloj

Satt och knåpade ihop lite RSS feeds till vår hemsida. Men jag grejar inte riktigt att få ihop dem så att de funkar till 100% hoppas att någon vänlig själ kan tala om hur jag ska lösa detta.

###################################################

PROBLEM 1

Denna funkar utan några felmeddelanden men saknar information.

<%
response.ContentType="text/xml"
'response.ContentType="application/rss+xml"

Set Databas=Server.CreateObject("ADODB.Connection")
Databas.Open "DBQ=c:\inetpub\scripts\paike_bans.mdb;DRIVER=Microsoft Access Driver (*.mdb)"
sql="select top 10 steamid,id from bans order by adat desc"
set rs=Databas.Execute(sql)

rs.MoveFirst()

response.Write("<?xml version='1.0' encoding='windows-1252'?>")
response.write("<rss version='2.0'>")
response.write("<channel>")
response.write("<title>paike.org - Bans</title>")
response.Write("<description>Senaste Bans från www.paike.org</description>")
response.write("<link>http://www.paike.org/</link>")

while (not rs.EOF)
  response.write("<item>")
  response.write("<title>" & rs("steamid") & "</title>")
  response.write("<description>" & rs("steamid") & "</description>")
  response.write("<link>http://www.paike.org/?ban=" & rs("id") & "</link>")
  response.write("</item>")
  rs.MoveNext()
wend
rs.close()
Databas.close()

response.write("</channel>")
response.write("</rss>")
%>

Så här blir ovanstående kod i IE7.0
http://www.paike.org/paike/rss/bandatabas_rss.asp

Det jag vill göra med denna är att även visa en förklaring till bannen i RSS Feeden men det köper inte min läsare inga felmeddelanden visas. Förklarings fältet i databasen heter "forklaring" och är av typen PM.

Har testat att sätta in...

 response.write("<description>" & rs("forklaring") & "</description>")

Men då står det bara att det är fel kodat kolla här...
http://www.paike.org/paike/rss/rss.asp

Skulle även vilja få in en tid av bannen vid steamidet om det går, det jag tänker på är tex om man ha googles privata sidor att man kan se själva bannen och tiden...

Typ STAMID - Tid X minuter som subject istället för bara steamid som man ser det idag tabellnamn i databasen är steamid(steamid), tid(tid, är ett textfält)

###################################################

PROBLEM 2

Denna funkar ändå sämmre den får jag inte ut i IE7.0 Alls men den bygger på samma kod som den förra, konsigt!

Funkar delvis men bara i privata sidor på google inte annars :(

<%
response.ContentType="text/xml"
'response.ContentType="application/rss+xml"

Set Databas=Server.CreateObject("ADODB.Connection")
Databas.Open "DBQ=c:\inetpub\scripts\paike.mdb;DRIVER=Microsoft Access Driver (*.mdb)"
sql="select top 10 subject,id from nyheter order by adat desc"
set rs=Databas.Execute(sql)

rs.MoveFirst()

response.Write("<?xml version='1.0' encoding='windows-1252'?>")
response.write("<rss version='2.0'>")
response.write("<channel>")
response.write("<title>paike.org - Nyheter</title>")
response.Write("<description>Nyheter från www.paike.org</description>")
response.write("<link>http://www.paike.org/</link>")

while (not rs.EOF)
  response.write("<item>")
  response.write("<title>" & rs("subject") & "</title>")
  response.write("<description>" & rs("subject") & "</description>")
  response.write("<link>http://www.paike.org/paike/default.asp?visa=visahela&amp;id=" & rs("id") & "</link>")
  response.write("</item>")
  rs.MoveNext()
wend
rs.close()
Databas.close()

response.write("</channel>")
response.write("</rss>")
%>

Så här blir ovanstående kod i IE7.0
http://www.paike.org/paike/rss/nyheter_rss.asp

Dvs funkar inge vidare även här har jag problem med att få in en bra förklaring av nyheten det står ju även bara här subject under förklaring där vill jag självklart se själva nyheten som är ett pm fält i databasen som heter [text]

###################################################

Grymt tacksam för hjälp gällande detta... börjar bli lite väl tunnhårig nu...!

Tack på förhand!

Medlem sedan juni 200032 967 inlägg
#2

Kan du inte lägga in lite radbrytningar när du skapar xml:en, så går mycket lättare att titta på den färdiga koden i webbläsaren.

- - - -

Har testat att sätta in...

Kod:
response.write("<description>" & rs("forklaring") & "</description>")

Men då står det bara att det är fel kodat kolla här...
http://www.paike.org/paike/rss/rss.asp

Du får ju ett asp-fel på sidan (Objektet kunde inte hittas i mängden med det begärda namnet eller numret.), så du har ju helt enkelt inte hämtat fältet du vill använda i din SELECT...

I övrigt kanske du måste html-encoda texten du lägger in i ditt xml-dokument?

Medlem sedan mars 20002 520 inlägg
#3

Radbrytningar hur gör man det ? :/

Ändrade lite nu och tog bort selectfelet men det buggar ändå

<%
response.ContentType="text/xml"
'response.ContentType="application/rss+xml"

Set Databas=Server.CreateObject("ADODB.Connection")
Databas.Open "DBQ=c:\inetpub\scripts\paike_bans.mdb;DRIVER=Microsoft Access Driver (*.mdb)"
sql="select top 10 steamid,id,forklaring,tid from bans order by adat desc"
set rs=Databas.Execute(sql)

rs.MoveFirst()

response.Write("<?xml version='1.0' encoding='windows-1252'?>")
response.write("<rss version='2.0'>")
response.write("<channel>")
response.write("<title>paike.org - Bans</title>")
response.Write("<description>Senaste Bans från www.paike.org</description>")
response.write("<link>http://www.paike.org/</link>")

while (not rs.EOF)
  response.write("<item>")
  response.write("<title>" & rs("steamid") & "</title>")
  response.write("<description>" & rs("forklaring") & "</description>")
  response.write("<link>http://www.paike.org/?ban=" & rs("id") & "</link>")
  response.write("</item>")
  rs.MoveNext()
wend
rs.close()
Databas.close()

response.write("</channel>")
response.write("</rss>")
%>

Felmeddelandet

Sluttaggen description matchar inte starttaggen br.
 Rad: 2 Tecken: 3

</description><link>http://www.paike.org/?ban=31660</link></item><item><title>STEAM_0:1:1155987987651258</title><description>
TD/TK - Do NOT attack or kill teammates on a paike.org server. Read the server rules before you connect next time!
<br><br>

Hur ska denna response.write("<title>" & rs("steamid") & "</title>") se ut om jag vill lägga till tiden?

Medlem sedan juni 200032 967 inlägg
#4

Radbrytningar hur gör man det ? :/

Lägg till & vbcrlf i asp-koden efter strängen.

Sluttaggen description matchar inte starttaggen br.

I XML måste du avsluta alla element. Dvs, du får inte skriva <br>, utan du måste använda <br/>.

Hur ska denna response.write("<title>" & rs("steamid") & "</title>") se ut om jag vill lägga till tiden?

Bara att konkatenera in som vanligt...

response.write("<title>" & rs("steamid") & " " & rs("vadfältetmedtidennuänkantänkasheta") & "</title>")
Medlem sedan mars 20002 520 inlägg
#5

Så där funkar ju inte 100% men är en godbit på vägen i alla fall, fick hjälp med en replace av <br> men ytterligare fel uppstår..

http://www.paike.org/paike/rss/rss2.asp

Medlem sedan juni 200032 967 inlägg
#6

Det är lite svårt att läsa fortfarande, men jag är villig att sätta några hundringar på att det inte är en bra idé att använda > i innehållet. Encoda till >.

EDIT: Nu ser jag också att du lagt in radbrytningarna inne i strängarna, där ska de inte vara. vbcrlf är en vbscript-konstant, och inte något som ska tolkas av webbläsaren. Exempel på hur det ska vara:

  response.write("<description>" & rs("forklaring") & "</description>" & vbcrlf)
Medlem sedan mars 20002 520 inlägg
#7

nej det funkade inte o ändra från min replace funktion jag hade tidigare i strängen...tillbaka till ruta ett..

<%
response.ContentType="text/xml"
'response.ContentType="application/rss+xml"

Set Databas=Server.CreateObject("ADODB.Connection")
Databas.Open "DBQ=c:\inetpub\scripts\paike_bans.mdb;DRIVER=Microsoft Access Driver (*.mdb)"
sql="select top 10 steamid,id,forklaring,tid from bans order by adat desc"
set rs=Databas.Execute(sql)

rs.MoveFirst()

response.Write("<?xml version='1.0' encoding='windows-1252'?>")
response.write("<rss version='2.0'>")
response.write("<channel>")
response.write("<title>paike.org - Bans</title>")
response.Write("<description>Senaste Bans från www.paike.org</description>")
response.write("<link>http://www.paike.org/</link>")

while (not rs.EOF)
  response.write("<item>")
  response.write("<title>" & rs("steamid") & " > Bantid " & rs("tid") & " min " & "</title>")
  response.write("<description>" & rs("forklaring") & "</description>" & vbcrlf)
  response.write("<link>http://www.paike.org/?ban=" & rs("id") & "</link>")
  response.write("</item>")
  rs.MoveNext()
wend
rs.close()
Databas.close()

response.write("</channel>")
response.write("</rss>")
%>

http://www.paike.org/paike/rss/rss2.asp

Lite knepigt detta med RSS men det är väll som vanligt första gången :)

Tackasam för hjälp...

Medlem sedan juni 200032 967 inlägg
#8

Vadå funkade inte att ändra? Var ändrade du någonstans?

Byt

  response.write("<title>" & rs("steamid") & " > Bantid " & rs("tid") & " min " & "</title>")

mot

  response.write("<title>" & rs("steamid") & " [b]&gt;[/b] Bantid " & rs("tid") & " min " & "</title>")

edit: du har också (igen) <br> i ditt innehåll. Jag kan inget om rss, så jag vet inte hur det är tänkt att det ska tolkas i rss-läsaren, men du får inte ha <br> i innehållet.

Medlem sedan mars 20002 520 inlägg
#9

Testar igen... och återkommer med lite feedback dock får detta dröja tills på onsdag då jag inte kommer vara närheten av en dator som kan koppla upp sig mot webbservern.

Medlem sedan dec. 20042 245 inlägg
#10

Man får inte ha element i <description> utan bara "text" (vilket i RSS 2.0 är odefinierat om det är text eller HTML). Ersätt < och & med < respektive & och hoppas på att läsare tolkar det som HTML och inte som text. :) (Om texten ]]> kan förekomma så ersätt > med > också.)

Eller så använder du Atom 1.0 istället där man kan ange om det är text eller HTML.

Medlem sedan mars 20002 520 inlägg
#11

Tackar boys ser ut som att det fungerar nu...

Vet inte riktigt vad som var fel då jag fick ytterligare hjälp av KruGer här på forumet... (y)

259 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)