Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hämta XML via XMLHttp för att sedan spara lokalt: problem?

Postades av 2003-11-17 15:12:08 - Viktor Bergman, i forum asp - allmänt, Tråden har 4 Kommentarer och lästs av 1335 personer

Jag har gjort en funktion som hämtar en ASP genererad XML-fil genoom XMLHttp. Denna sparar jag ner som en temporär fil på servern för att sedan öppna den.

Problemet jag stöter på är att när jag skall skriva till filen så får jag ett litet felmeddelande, verkar bero på att jag har flera rader text inne i en specifik tag?

Felet blir:
<code>
Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument

/system/xmltest.asp, line 11
</code>

XMLTest.asp

<code>
s = GetHTML("http://www.rudyalvarado.com/system/genXML.asp?id=166")

Set cFSO = CreateObject("Scripting.FileSystemObject")
SavePath = "testar.xml"
Set responsefile = cFSO.CreateTextFile(Server.MapPath(SavePath))
responsefile.Writeline(s)
responsefile.close
</code>


Slutligen då XML-filen som ser ut så här:

<code>
<ARTIKEL>
<RUBRIK>Bongo blir Infocore</RUBRIK>
<PUFF>kldsjfkdlsjf</PUFF>
<INGRESS>Ingress</INGRESS>
<SKRIBENT>Viktor Bergman</SKRIBENT>
<SKRIVET>2003-06-01 22:10:00</SKRIVET>
<BRODTEXT>Från att ha hetat Bongo New Media Consultants har vi nu bytt namn till Infocore Solutions</BRODTEXT>
</ARTIKEL>
</code>


Svara

Sv: Hämta XML via XMLHttp för att sedan spara lokalt: problem?

Postades av 2003-11-18 11:00:44 - Ulf Elfving

Vilken rad är nummer 11?
Alltså vilken rad genererar felet?


Svara

Sv: Hämta XML via XMLHttp för att sedan spara lokalt: problem?

Postades av 2003-11-18 22:18:06 - Viktor Bergman

Jag har löst problemet nu, fick använda mig av en annan metod.


Svara

Sv: Hämta XML via XMLHttp för att sedan spara lokalt: problem?

Postades av 2003-11-19 11:04:19 - Ulf Elfving

Hur löste du det? Kan ju vara bra att veta. =)


Svara

Sv: Hämta XML via XMLHttp för att sedan spara lokalt: problem?

Postades av 2003-11-20 19:00:11 - Viktor Bergman

Eftersom jag letade runt efter en lösning på mitt problem insåg jag snabbt och självklart att fler säkert hade samma problem :) så här kommer lösningen
Det jag gör är att hämtar hem filen med XMLHttp och sparar den temporärt på servern för att sedan loopa igenom den och sedan radera filen.

Först slänger jag ihop en unik sträng så jag inte skriver över filer...
<code>
tempName = Replace(now, ":", "")
tempName = Replace(tempName, " ", "")
<code>

Sen börjar själva koden då, som jag uppenbarligen inte ligger bakom ursprungligen ;)

URLer ligger i theURLS i en array som är separerad enligt detta format URL|URL|URL. Jag valde att ha en textruta där man skrev in en adress till scriptet som genererar XML-filen.

<code>
TheURLS = Trim(request.querystring("data"))
</code>

Nästa steg är att välja vad den lokala filen skall heta.
<code>
FileNames = tempName & ".xml"
</code>

Dags att börja splitta upp arrayen
<code>
FileURL = Split(TheURLS,"|")
SaveName = Split(FileNames,"|")
</code>

En massa kod som man egentligen inte behöver bry sig om :p

<code>
Set xmlHTTP
Set xmlHTTP = CreateObject("MSXML2.ServerXMLHTTP")
'Cycle through the file locations and save them
For x = 0 to UBound(FileURL)

'Get the file
xmlHTTP.open "GET", FileURL(x), false
xmlHTTP.send()

'Download the file
set DataStream = CreateObject("ADODB.Stream")
DataStream.Open
DataStream.Type = 1 'adTypeBinary
DataStream.Write xmlHTTP.ResponseBody
DataStream.Position = 0
</code>

Ange vart du vill att filen skall sparas. Skall vara en direkt sökväg.
<code>
SavedFile = "c:\inetpub\wwwroot\xml\ & SaveName(x)

'Set the File System Object, so we can check to see if it already exists.
set FSO = Createobject("Scripting.FileSystemObject")
'If the file already exists, delete it
if fso.Fileexists(SavedFile) then
Fso.DeleteFile SavedFile
End If
set FSO = Nothing

'Write the file to the location on the server
DataStream.SaveToFile SavedFile
DataStream.Close
Set DataStream = Nothing

Next
Set xmlHTTP = Nothing
</code>

Nu är det första steget klart, nu kan du öppna XML filen med DOM eller vad du nu gillar bäst. Eftersom jag är inte är så "extremt" bevandrad inom XML och DOM väljer jag istället att öppna den som en vanlig datakälla.

<code>
Dim objRS
Set objRS = Server.CreateObject("ADODB.RecordSet")

objRS.ActiveConnection = "Provider=MSDAOSP; Data Source=MSXML2.DSOControl.2.6;"
</code>

Öppna filen, antingen med Server.Mappath eller direkt sökväg.
<code>
objRS.Open("c:\inetpub\wwwroot\xml\" & tempName & ".xml" ))
</code>

Nu kan du i stort sett göra vad du vill med filen, stoppa in datan i en databas eller liknande. Observera att den hämtar datan i ordningen som noden är skapad. Tex

<test>Pellesoft är grymt!</test> <---- objRS.Fields(0)
<test2>XML är framtiden</test2> <---- objRS.Fields(1)

<code>
Do While Not objRS.EOF

Response.Write( "Fält 1: " & objRS.Fields(0) & "<br>")
Response.Write( "Fält 2: " & objRS.Fields(1) & "<br>")

objRS.MoveNext
Loop
</code>

Efter detta tar du bort filen med FSO.

Hoppas det fungerar lika bra för er som det gör för mig!
Ha de gött :)


Svara

Nyligen

  • 08:28 Butiksskyltar: Hur upplever utbude
  • 22:31 Slappna av
  • 19:55 kick-off med fokus på hälsa?
  • 19:53 kick-off med fokus på hälsa?
  • 16:24 Föreslå en skönhetsklinik online
  • 16:23 Föreslå en skönhetsklinik online
  • 18:42 Hvor finder man håndlavede lamper
  • 18:41 Hvor finder man håndlavede lamper

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 792
27 960
271 761
494
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies