Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   Rss с на Asp (http://forum.oszone.net/showthread.php?t=112203)

aminiy 24-07-2008 19:14 860257

Rss с на Asp
 
Rss с на asp

Решил на своем итранет сервере сделать RSS
Написал скрипт сохранил его в паке IIS c разрешенным исполнением сценариев.
Скипт имеет название news.xml. настроил IIS так чтоб он обрабатывал написанный мной скрипт.
С помощью "Opera"ы зашел на url [неurl]http://localhost/asp/news.xml[/неurl] выдает страницу но браузер не распознает в нем rss. Скопировал исходный xml текст, выданный браузером и сохранил его в корне IIS, под именем new.xml. Даю браузеру команду [неurl]http://localhost/new.xml[/неurl] и браузер сразу начинает просится добавит rss канал.
не понимаю почему даже если IIS ВЫДАЕТ XML ПОЧЕМУ БРАУЗЕР НЕ СЧИТАЕТ ЕГО RSSом


Исходный текст скрипта http://localhost/asp/news.xml
--------------------------------------------------------------------------------------
[неurl]http://localhost/asp/news.xml[/неurl]
--------------------------------------------------------------------------------------

<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>Ipak yulim</title>
<link>http://10.14.144.95/</link>
<description>Ipak yul i</description>
<image>
<url>http://10.14.144.95/images/Ipak.gif</url><link>http://10.14.144.95</link><title>10.14.144.95 Новости</title>
</image>

<%@ Language=VBScript %>

<%
'Создание объекта подключения.
Response.Write "<lastBuildDate>" & Date() & " " & Time() & "</lastBuildDate> " & chr(13)

Set cnn = Server.CreateObject("ADODB.Connection")
Set rstCustomers = Server.CreateObject("ADODB.Recordset")

'Открытие подключения с помощью строки подключения OLE DB.
cnn.Open "Provider=ibole.Provider.v4;Persist Security Info=True;Data Source=localhost:C:\Inetpub\webbase\WBASE.FDB;Mode=Read;%LOGIN-INFO%"


strSQL = "select FIRST 10 * from news order by time_stamp desc;"

rstCustomers.Open strSQL, cnn

Set objTITLE = rstCustomers("TITLE")
Set objTIME_STAMP = rstCustomers("TIME_STAMP")
Set objTEXT = rstCustomers("TEXT")
Set objID = rstCustomers("ID")
Do Until rstCustomers.EOF

Response.Write " <item>" & chr(13) & "<title>" & objTITLE & "</title>" & chr(13)
Response.Write "<link>http://10.14.144.95/asp/podrobno.asp?id=" & objID & "</link> " & chr(13)
Response.Write " <description>" & objTEXT &"</description> " & chr(13)
Response.Write " <pubDate>" & date() & " " & time() & "</pubDate> "& chr(13)
Response.Write " <guid>http://10.14.144.95/asp/podrobno.asp?id=" & objID & "</guid>" & chr(13) & "</item> "
rstCustomers.MoveNext
Loop


%>
</channel> </rss>




полученный браузером текст xml ------

----------------------------------------------------------------------------------
[неurl]http://localhost/new.xml[/неurl]
----------------------------------------------------------------------------------

<?xml version="1.0" encoding="windows-1251"?>
<rss version="2.0">
<channel>
<title>Ipak yulim</title>
<link>http://10.14.144.95/</link>
<description>Ipak yul i</description>
<image>
<url>http://10.14.144.95/images/Ipak.gif</url><link>http://10.14.144.95</link><title>10.14.144.95 Новости</title>
</image>

<lastBuildDate>24.07.2008 19:48:42</lastBuildDate>
<item>
<title>НУ И ЕШЕ GNU Library General Public License, Versi</title>
<link>http://10.14.144.95/asp/podrobno.asp?id=3</link>
<description>GNU Library General Public License, Version 2</description>
<pubDate>24.07.2008 19:48:42</pubDate>
<guid>http://10.14.144.95/asp/podrobno.asp?id=3</guid>
</item> <item>
<title>ТЕМА</title>
<link>http://10.14.144.95/asp/podrobno.asp?id=1</link>
<description>И ТЕКСТ
К ПРИМЕРУ</description>
<pubDate>24.07.2008 19:48:42</pubDate>
<guid>http://10.14.144.95/asp/podrobno.asp?id=1</guid>
</item>
</channel> </rss>

Sham 24-07-2008 23:45 860442

IIS не тот хедер шлет, какой нужен. Попробуй до вывода (в самом начале) вставить
Код:

<% Response.ContentType = "text/xml" %>
хотя afaik строка
Цитата:

Цитата aminiy
@ Language=VBScript »

должна быть самой первой - не суть...

aminiy 25-07-2008 08:36 860600

Цитата:

Цитата Sham
<% Response.ContentType = "text/xml" %> »

Спасибо помогло если кому нибудь интересно вот исходныйй текст который получился





<%@ Language=VBScript %>
<% Response.ContentType = "text/xml" %>
<%
Response.Write "<?xml version=" & chr(34) & "1.0" & chr(34) & " encoding=" & chr(34) & "windows-1251" & chr(34) & "?>" & chr(13)
Response.Write "<rss version=" & chr(34) & "2.0" & chr(34) & ">" & chr(13)
Response.Write "<channel>" & chr(13) & chr(13)
Response.Write "<title>Ipak yulim</title>" & chr(13)
Response.Write "<link>http://10.14.144.95/</link>" & chr(13)
Response.Write "<description>Ipak yul i</description>" & chr(13)
Response.Write "<image>" & chr(13)
Response.Write "<url>http://10.14.144.95/images/Ipak.gif</url><link>http://10.14.144.95</link><title>10.14.144.95 Новости</title>"& chr(13)
Response.Write "</image>" & chr(13) %>






<%
'Создание объекта подключения.
Response.Write "<lastBuildDate>" & Date() & " " & Time() & "</lastBuildDate> " & chr(13)

Set cnn = Server.CreateObject("ADODB.Connection")
Set rstCustomers = Server.CreateObject("ADODB.Recordset")

'Открытие подключения с помощью строки подключения OLE DB.
cnn.Open "Provider=ibole.Provider.v4;Persist Security Info=True;Data Source=localhost:C:\Inetpub\webbase\WBASE.FDB;Mode=Read;%LOGIN-INFO%"


strSQL = "select FIRST 10 * from news order by time_stamp desc;"

rstCustomers.Open strSQL, cnn

Set objTITLE = rstCustomers("TITLE")
Set objTIME_STAMP = rstCustomers("TIME_STAMP")
Set objTEXT = rstCustomers("TEXT")
Set objID = rstCustomers("ID")
Do Until rstCustomers.EOF

Response.Write " <item>" & chr(13) & "<title>" & objTITLE & "</title>" & chr(13)
Response.Write "<link>http://10.14.144.95/asp/podrobno.asp?id=" & objID & "</link> " & chr(13)
Response.Write " <description>" & objTEXT &"</description> " & chr(13)
Response.Write " <pubDate>" & date() & " " & time() & "</pubDate> "& chr(13)
Response.Write " <guid>http://10.14.144.95/asp/podrobno.asp?id=" & objID & "</guid>" & chr(13) & "</item> "
rstCustomers.MoveNext
Loop


%>
</channel> </rss>

Busla 26-07-2008 01:16 861275

вроде как де-факто принято указывать application/rss+xml

Sham 26-07-2008 02:25 861295

Цитата:

Цитата Busla
де-факто принято указывать application/rss+xml »

ну это разные вещи... если например нужно отобразить RSS-ленту в браузере с использованием XSL-стиля - только "text/xml".

Busla 26-07-2008 12:34 861408

Sham, пример довольно экзотический

Sham 26-07-2008 20:38 861678

+ старые браузеры могут не отрабатывать такие заголовки и предлагать файл на закачку (и не у всех есть rss-клиент)...
вообще обычно на прямой вывод шлется "text/xml", а только на подписку "application/rss+xml":
HTML код:

<link rel="alternate" type="application/rss+xml" title="Компьютерный форум OSzone.net" href="external.php?type=RSS1" />


Время: 18:44.

Время: 18:44.
© OSzone.net 2001-