Классический ASP парсер RSS и Wordpress Feed совместимость

Я предрежу этот вопрос тем фактом, что я веб-дизайнер, и я пытаюсь найти способ исправить этот классический код синтаксического анализатора ASP RSS, который мы используем здесь, на работе, поэтому любая основная идея, которую вы можете предложить, будет оценили.

Я столкнулся с дорожным блоком с этим кодом. Он анализирует RSS-канал, но, как правило, только те каналы, которые используют настройки совместимости с FeedFurner SmartFeed. Что мне нужно сделать, так это уметь анализировать обычную jane Wordpress ленту, что она, похоже, изо всех сил пытается сделать. Моя цель здесь состоит в том, чтобы добавить дополнительную совместимость, чтобы этот код не был настолько привередливым, когда дело доходит до разбора фидов.

Когда я вставляю прямую ленту WP, она поднимает ошибку неверной подачи и возвращает код ошибки -2146697211, который при поиске кода, по-видимому, подразумевает, что канал не может быть найден. Я попытался изменить Server.CreateObject("MSXML2.DomDocument.3.0") на Server.CreateObject ("MSXML2.DomDocument.4.0"), но похоже, что наш сервер не поддерживает 4.0. Хотя это может быть что-то, что может быть улучшено, время разработки здесь для этой проблемы довольно маловероятно. Поэтому я пытаюсь заставить его работать с использованием текущей настройки IIS, если это возможно.

У кого-нибудь есть какие-нибудь идеи относительно каких-либо настроек, которые можно было бы сделать, чтобы это работало? Благодарю.

       <%
                SUB DisplayRSSFeed(URLToRSS, MaxNumberOfItems) 


                Set fs=Server.CreateObject("Scripting.FileSystemObject")
                IF fs.FileExists(Server.MapPath(TemplatePath & "rss_template.asp")) THEN
                    Set f=fs.OpenTextFile(Server.MapPath(TemplatePath & "rss_template.asp"), 1)
                    itemTemplate = f.ReadAll
                    f.Close
                Set f=Nothing 

                ELSE

                    ' =========== configuration =====================
                    ' Item template.
                    ' {LINK} will be replaced with item link
                    ' {TITLE} will be replaced with item title
                    ' {DESCRIPTION} will be replaced with item description
                    'ItemTemplate = "<tr><td><a target='_blank' href=" & """{LINK}""" & ">{TITLE}</a><BR>{DESCRIPTION}</td></tr>"

                    ItemTemplate = ""
                    ItemTemplate = ItemTemplate & "<div class=""sp_blogPost"">"
                    ItemTemplate = ItemTemplate & "     <h2><a href=""{LINK}"" target=""_blank"">{TITLE}</a></h2>"
                    ItemTemplate = ItemTemplate & "     <h5>Posted on {DATE}</h5>"
                    ItemTemplate = ItemTemplate & "     <p>"
                    ItemTemplate = ItemTemplate & "         {DESCRIPTION}"
                    ItemTemplate = ItemTemplate & "     </p>"
                    ItemTemplate = ItemTemplate & "     <a href=""{LINK}"" target=""_blank"">Continue Reading Article</a>"
                    ItemTemplate = ItemTemplate & "</div>"
                    ItemTemplate = ItemTemplate & "<div class=""sp_blogDivider""></div>"
                    ' ================================================
                END IF 

                    On Error Resume Next
                    Set xmlHttp = Server.CreateObject("MSXML2.XMLHTTP")
                    xmlHttp.Open "Get", URLToRSS, false
                    IF Err.number <> 0 then
                        Response.Write "The URL is not valid"
                        Exit Sub            
                    END IF        
                    xmlHttp.Send()
                    RSSXML = xmlHttp.ResponseText

                Set xmlDOM = Server.CreateObject("MSXML2.DomDocument.3.0")
                    xmlDOM.async = false
                    xmlDOM.LoadXml(RSSXML)
                    IF Err.number <> 0 then
                        Response.Write "The RSS Data is not valid"
                        Response.Write Err.number
                        Exit Sub            
                    END IF        

                    Set RSSItems = xmlDOM.getElementsByTagName("item") ' collect all "items" from downloaded RSS        

                    j = -1
                    FOR EACH RSSItem IN RSSItems
                    FOR EACH child IN RSSItem.childNodes
                        Select case lcase(child.nodeName)
                            case "title"
                                RSStitle = child.text
                            case "enclosure"
                                RSSimage = child.getAttribute("url")
                    ''      case "link"
                    ''          RSSlink = child.text
                            case "guid"
                                RSSlink = child.text
                            case "description"
                                RSSdescription = child.text

                                Set re = New RegExp
                                re.Pattern = "<[^>]+>"
                                re.IgnoreCase = true
                                re.Global = true

                                RSSdescription = re.Replace(RSSdescription, "")

                                set re = nothing

                                if len(RSSdescription) > 300 then RSSdescription = mid(RSSdescription, 1, 300) & "..."
                            case "pubdate"
                                RSSdate = child.text
                                RSSdate = split(RSSDate, "T")(0)
                                arrDate = split(RSSDate, "-")
                                if ubound(arrDate) = 2 then
                                    RSSdate = arrDate(1) & "." & arrDate(2) & "." & arrDate(0)
                                else
                                    RSSdate = Replace(RSSdate, "-", ".")
                                end if
                        END SELECT
                        NEXT                                     
                            j = J+1                                     
                            IF J < CInt(MaxNumberOfItems) THEN
                                Itemcontent = ItemTemplate
                                Itemcontent = Replace(Itemcontent,"{DATE}", RSSdate)
                                Itemcontent = Replace(Itemcontent,"{IMAGE}", RSSimage)
                                ItemContent = Replace(ItemContent,"{LINK}",RSSlink)
                                ItemContent = Replace(ItemContent,"{TITLE}",RSSTitle)
                                ItemContent = Replace(ItemContent,"{DESCRIPTION}",RSSDescription)

                                Response.Write ItemContent
                                ItemContent = ""
                            END IF
                        NEXT
                    'Response.Write "</table>"
                    On Error GoTo 0
                END SUB
                %>

0 ответов

Другие вопросы по тегам