Здравствуйте, Shroo, Вы писали:
S> Добрый день!
S> Появилась следующая задача. Распарсить rss на обычном ASP.
<%@ CODEPAGE=65001 %>
<%
'ASP-файл сохранять в UTF-8!!!
Response.Charset = "utf-8"
Function LoadRSS(RSS_link)
Set http = Server.CreateObject("Msxml2.ServerXMLHTTP.3.0")
http.open "GET", RSS_link, False
http.setRequestHeader "User-Agent", "agent007"
http.send
Set xmlDoc = http.ResponseXML
Set http = Nothing
'или можно ещё так, работает намного надежнее:
'set xmlDoc = Server.CreateObject("Msxml2.DOMDocument")
'xmlDoc.async = false
'xmlDoc.setProperty "ServerHTTPRequest", true
'xmlDoc.validateOnParse = false
'xmlDoc.load RSS_link
if xmlDoc.parseError.errorCode <> 0 then
Set myErr = xmlDoc.parseError
Response.write(myErr.reason)
Exit Function
end if
Set objNodeList = xmlDoc.getElementsByTagName("channel")
Set objNode = objNodeList.item(0)
If TypeName(objNode.selectSingleNode("title")) <> "Nothing" then
ch_title = objNode.selectSingleNode("title").text
End if
Set XmlDoc = Nothing
Set objNodeList = Nothing
Set objNode = Nothing
Response.write(ch_title)
End Function
%>
Добрый день!
Появилась следующая задача. Распарсить rss на обычном ASP.
Я соорудил что-то такое:
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
function PostOrder()
{
var url = "http://somesite/y.xml";
xmlhttp.Open("GET", url, false);
xmlhttp.setRequestHeader("Content-Type", "text/html; charset=windows-1251"); // or charset=utf-8 or utf-16
xmlhttp.onreadystatechange=HandleStateChange;
xmlhttp.Send();
}
function HandleStateChange()
{
if (xmlhttp.readyState == 4)
{
res = xmlhttp.responseText;
var table = "<table border=1>\n";
table += res;
table += "</table>";
Response.Write(table);
}
}
PostOrder();
какая-то фигня с кодировкой

. Все русские символы возвращаются в виде знаков вопроса.
Возвращаемый XML воде бы имеет кодировку 1251
<?xml version="1.0" encoding="Windows-1251" ?>
Уже и так менял и так. Не знаю дальше куда копать.
К сожаленю поиск мне не помог, мучаюсь второй день.
PS. Может вообще есть какие-то альтернативные способы решения проблемы.
Заранее спасибо.