Avatar billede speder Nybegynder
23. marts 2004 - 22:09 Der er 9 kommentarer og
1 løsning

Hente lokalt xml dokument

Hej

Jeg har:

Set xmlDoc = CreateObject("Microsoft.xmldom")

xmlDoc.async = False

loadstatus = xmlDoc.load("http://127.0.0.1/pol/xml/test1.xml")

Men faktisk vil jeg gerne hente et xml doc fra c-drevet, men det giver en object required fejl. Kan man ikke bruge load til at hente en fil?
Avatar billede stigc Nybegynder
23. marts 2004 - 22:21 #1
Har ud prøvet med den fulde sti, via server.mappath?
Ellers må du loade XML'en til en streng med et filobjekt, og lægge det ind i objektet med xmlDoc.loadXML(String)
Avatar billede speder Nybegynder
23. marts 2004 - 22:38 #2
Kunne du måske lige give et par linier der viser hvordan du læser en fil ind i en streng?
Avatar billede nute Nybegynder
23. marts 2004 - 22:45 #3
du kan ikke bruge xmldom til at lave http kald. så skal du bruge fx XMLHTTP:

Dim HttpReq As New MSXML2.XMLHTTP40
 
HttpReq.open "GET", "http://127.0.0.1/pol/xml/test1.xml", False
HttpReq.send

ellers skal du gøre som stigc skriver ... laste fra en fil:

xmlDoc.load( "c:\enfolder\enxmlfil.xml" )
Avatar billede speder Nybegynder
23. marts 2004 - 22:48 #4
Mit (underlige) problem er at dette virker fint:

loadstatus = xmlDoc.load("http://127.0.0.1/pol/xml/test1.xml")

Men det gør det her ikke:

loadstatus = xmlDoc.load("c:\inetpub\wwwroot\pol\xml\test1.xml")

Men fileexist viser at filen eksisterer, men den vil bare ikke læse den ind gennem xmldom. Derfor kunne jeg måske prøve at læse den ind i en streng og så bruge loadXML, som stigc skriver.
Avatar billede speder Nybegynder
24. marts 2004 - 07:11 #5
Hej Igen. Jeg tror måske mit problem er anderledes. Her er en ny beskrivelse. Jeg har afsat lidt flere points (det er på engelsk fordi jeg stillede spørgsmålet på et us expert-forum):

Hello
I've got an ASP vbscript that works ok. Here it is:

Dim objXMLDOM
Set objXMLDOM = Server.CreateObject("Microsoft.XMLDOM")

objXMLDOM.load(Server.MapPath("test.xml"))

For Each objChild In objXMLDOM.documentElement.childNodes
    Response.Write objChild.NodeName & " - "   
    Response.Write objChild.Text & "<BR>"
Next
Next

However, I cannot get this to work in a standalone vbscript (test.vbs) that looks like this:

Dim objXMLDOM
Set objXMLDOM = CreateObject("Microsoft.XMLDOM")

objXMLDOM.load("c:\test.xml")

For Each objChild In objXMLDOM.documentElement.childNodes
    MsgBox objChild.NodeName & objChild.Text
Next
Next

It throws an "Object Required" error. I know the file is there since a fileexist returns true.
Avatar billede nute Nybegynder
24. marts 2004 - 09:10 #6
må ærlig indrømme at jeg ikke kender "Microsoft.XMLDOM" ... arbejder kun med "MSXML2.DOMDocumentx" objekter.

hvordan ser din xml ud ?
Avatar billede stigc Nybegynder
24. marts 2004 - 13:07 #7
Jeg prøvede

Dim objXMLDOM
Set objXMLDOM = CreateObject("Microsoft.XMLDOM")

objXMLDOM.load("c:\test.xml")

For Each objChild In objXMLDOM.documentElement.childNodes
    MsgBox objChild.NodeName & objChild.Text
Next

her hos mig selv, og det virkede fint. Der må være fejl i dit XML dokument. Kan du åbne det i Explorer?
Avatar billede speder Nybegynder
24. marts 2004 - 16:25 #8
Nå, årsagen til at jeg ikke kunne loade dokumentet var at jeg havde overset at der manglende en DTD-fil. Smid et svar begge to så deler jeg points mellem os.
Avatar billede stigc Nybegynder
24. marts 2004 - 17:52 #9
jeg samler ikke.
Avatar billede nute Nybegynder
24. marts 2004 - 17:56 #10
jeg ser ikke at jeg kom med noget, der kunne guide dig på vej ... det gjorde stigc. Jeg står af ... ellers tak. Du må gerne beholde dine points selv

/nute
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