Avatar billede mortenjp Nybegynder
20. april 2002 - 22:24 Der er 11 kommentarer og
1 løsning

xmldom med vbscript, nybegynder

Nu er jeg sgu træt af at være til grin overfor et par latterlige instanser af objekter.

Det eneste jeg vil er, at trække værdier ud af et xml-feed fra et andet site.
http://www.daypop.com/top/rss.xml

Men får, så vidt jeg husker, en Object required-fejl.

Jeg vil helst undgå XSL, da jeg måske skal kunne arbejde med dataen i asp sammen med interne databaser.

Set objXMLDoc = server.CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load("http://www.daypop.com/top/rss.xml")

Set Node = objXMLDoc.documentElement.selectSingleNode("Word/Spanish")
document.write(Node.text)
Avatar billede getalife Nybegynder
20. april 2002 - 23:23 #1
Set objCompanyRoot=objXML.documentElement.selectSingleNode("Company_Info")
compname = objCompanyRoot.selectSingleNode("Company_Name").text

Sådan gør jeg... men det kan godt være at jeg er besværlig :o)

Jeg bruger en komponent der hedder ASPTear til at retrieve dataen

Set xobj = CreateObject("SOFTWING.ASPtear")
Response.ContentType = "text/html"
strRetval = xobj.Retrieve(strUrl, Request_GET, "", "", "")
Avatar billede mortenjp Nybegynder
20. april 2002 - 23:29 #2
Hov, jeg glemte at skrive, at jeg ikke har mulighed for at registrere tredjepartskomponenter, da det er et webhotel (men der er msxml installeret)
Avatar billede medions Nybegynder
22. april 2002 - 15:54 #3
Set objXmlDoc = Server.CreateObject("MSXML.DOMDocument")
Set objXslDoc = Server.CreateObject("MSXML.DOMDocument")
xmlPath = "http://www.daypop.com/top/rss.xml"
objXmlDoc.Async=false
objXmlDoc.load("" & xmlPath & "")
objXslDoc.Async=false
objXslDoc.load("" & xslPath & "")

If instr(1, ClientVer(1), "MSIE 5.") > 0 Then
Response.write objXmlDoc.transformNode(objXslDoc)
else
    Response.write objXmlDoc.documentElement.transformNode
(objXslDoc.documentElement)
    Response.Write objXmlDoc.transformNode(objXslDoc)
end if

Prøv med denne måde.. - det skulle gerne virke.. -har ikke testet den igennem!
Held og lykke med det!

//>Rune
Avatar billede medions Nybegynder
22. april 2002 - 15:56 #4
Men hvis ikke min koden virkede, så skulle den gerne ;-)

http://www.teamwarfare.com/forums/showthread.asp?threadid=3864

Endnu en gang, held og lykke med det... ;-)

//>Rune
Avatar billede mortenjp Nybegynder
22. april 2002 - 16:09 #5
Uargh, tak for svaret. Jeg glemte dog helt at nævne, at jeg skal bruge det serviside med vbscript i ASP.

Jeg er dog kommet lidt længere. Nu er det kun RSS-feeds, jeg ikke kan få til at fungere. Jeg ender med en fejl: No data is available for the requested resource. fejlkode: -2146697209, når jeg prøver fx at hente data fra http://www.daypop.com/top/rss.xml - men visse andre feeds kan jeg godt trække data ud af.

Min kode?

                    url="http://www.daypop.com/top/rss.xml"
                    Set objSvrHTTP = Server.CreateObject("Msxml2.ServerXMLHTTP.4.0")
                    objSvrHTTP.open "GET", url, false

                    objSvrHTTP.send()
                   
                    set objXML = CreateObject("MSXML2.FreeThreadedDOMDocument.4.0")
                    objXML.async = false
                   
                                   
                    objXML.load (objsvrhttp.responsexml)
               
                    if not (objXML.readyState = 4 AND objXML.parseError.errorCode = 0) then
                        response.write "fejl: "&objXML.parseError.reason
                        response.write "fejl: "&objXML.parseError.errorcode
                      response.write "<br>Parse Error line " & objXML.parseError.line & ", character "&_
                  objXML.parseError.linePos & vbCrLf & objXML.parseError.srcText
                    end if

                    set objNode=objXML.documentElement.selectsinglenode("//channel/title")
                   
                    response.write objNode.text
Avatar billede medions Nybegynder
22. april 2002 - 16:13 #6
Hmm.. har du prøvet mine eksempler?

//>Rune
Avatar billede mortenjp Nybegynder
22. april 2002 - 16:14 #7
Nej, fordi jeg synes jeg kan læse ud fra dem, at
- de bruger xsl
- de er skrevet til client-side :)
Avatar billede medions Nybegynder
22. april 2002 - 16:19 #8
Nej! - De begge er ASP, altså serversideed! - og du er nødt til at benytte dig af XSL, denne lille smugle..! - Du behøver ikke decideret bruge XSL dokumenter!

//>Rune
Avatar billede mortenjp Nybegynder
22. april 2002 - 16:29 #9
Men du linker jo direkte ind i et xsl-dokument.
objXslDoc.load("" & xslPath & "")

Og har en direkte reference til klientversion.
If instr(1, ClientVer(1), "MSIE 5.") > 0 Then
Avatar billede mortenjp Nybegynder
22. april 2002 - 16:29 #10
..nåja, og pointen er jo, at jeg godt kan få det til at virke, bare ikke med RSS-feeds..
Avatar billede danic Nybegynder
27. maj 2002 - 19:19 #11
Du kører sikkert en 2000 maskine, hvilket vil sige at du skal sætte dit xml-objekt op til at kunne modtage XML over HTTP. Dette gøres med:
  objXMLDoc.setProperty "ServerHTTPRequest", true

det skal gøres inden dit load kald.

Bemærk fejlen er beskrevet på microsoft.com: http://support.microsoft.com/default.aspx?scid=kb;EN-US;q281142
Avatar billede mortenjp Nybegynder
28. maj 2002 - 10:58 #12
Yes, Danic - det var helt korrekt :)
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
Kurser inden for grundlæggende programmering

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