Avatar billede samuelsen Nybegynder
30. juli 2003 - 22:05 Der er 16 kommentarer og
1 løsning

Kopi af XML-fil

Kære alle!

Jeg kunne godt tænke mig at tage en kopi af en XML-fil som ligger på en server, og lægge den over på en anden. Forstå mig ret, det behøver IKKE at være præcis den samme fil, men bare indholdet af XML-filen over i en ny XMLfil. Evt. ved brug af et java eller asp-script..

På forhånd tak for hjælpen
Per Samuelsen
Avatar billede arne_v Ekspert
30. juli 2003 - 22:09 #1
Hvordan skal den hentes ?

COPY ? FTP ? HTTP ?

Hvis det f.eks. er via HTTP, så er det bare at bruge en utility som wget
til at hente fra URL til fil !
Avatar billede samuelsen Nybegynder
30. juli 2003 - 22:10 #2
ja, det er bare fra HTTP, men hvordan kan jeg gøre det, "automatisk" altså via et java, asp script?
Avatar billede arne_v Ekspert
30. juli 2003 - 22:13 #3
Jeg kan give dig Java kode og C/C++ kode.

JavaScript og VBScript ligger lidt uden for mit ekspertise område.
Avatar billede simonvalter Praktikant
30. juli 2003 - 22:14 #4
hvilken server .. det ville være nemt med en linux server og så bruge wget som arne_v siger i crontab.
Avatar billede samuelsen Nybegynder
30. juli 2003 - 22:20 #5
Hej Arne og loadet,
Java kode vil være ganske udemærket, det er en linuxserver, men jeg har ikke adgang til serveren, har kun fået HTTP-adressen...
Dog vil jeg rigtig gerne kunne bruge et asp-scipt, hvis nogen kender et, desværre kender jeg ikke programmet wget...nogle som ved hvor det kan downloades, og findes det i en windows udgave, eller er det kun til linux?
Avatar billede simonvalter Praktikant
30. juli 2003 - 22:21 #6
men den server du vil ligge backup på må du da have adgang til?
og hvad er det for en server?
Avatar billede arne_v Ekspert
30. juli 2003 - 22:24 #7
Det kræver ikke ret meget Java kode at hente med HTTP.

Dette kode hnter fra http://www.eksperten.dk/ og gemmer som en
fil z.z:

import java.net.*;
import java.io.*;

public class HttpGet {
  public static void main(String[] args) {
      try {
        URL url = new URL("http://www.eksperten.dk/");
        HttpURLConnection con = (HttpURLConnection)url.openConnection();
        con.connect();
        if(con.getResponseCode() == HttpURLConnection.HTTP_OK) {
            InputStream is = con.getInputStream();
            OutputStream os = new FileOutputStream("z.z");
            byte[] b = new byte[1000];
            int n;
            while((n = is.read(b)) >= 0) {
              os.write(b,0,n);
            }
            os.close();
            is.close();
        }
        con.disconnect();
      } catch (MalformedURLException e) {
        e.printStackTrace();
      } catch (FileNotFoundException e) {
        e.printStackTrace();
      } catch (IOException e) {
        e.printStackTrace();
      }
  }
}

Det vil også virke med XML.
Avatar billede samuelsen Nybegynder
30. juli 2003 - 22:45 #8
Hej Arne!

Tak for hjælpen, men desværre understøtter min udbyder ikke jsp eller java, så jeg ville blive glad hvis der var nogle kunne hjælpe med lidt asp eller script kode....
Avatar billede simonvalter Praktikant
30. juli 2003 - 22:48 #9
jeg går ud fra at du snakker om at få noget der hvor du har xml filen ... hvad med at fortælle om det sted hvor du vil lave din backup .. er det også bare noget public webspace .. eller er det en server som du har adgang til og hvad for en?
Avatar billede simonvalter Praktikant
30. juli 2003 - 22:51 #10
og med min lille viden om script/asp .. så kan jeg ikke se hvordan du skulle kunne få den til at gøre det automatisk så .. det kører vist kun når du har åbnet siden i din browser.
Avatar billede samuelsen Nybegynder
30. juli 2003 - 22:54 #11
Hej Loadet,
det skal også køre når jeg åbner siden i en browser, jeg har naturligvis adgang til den server hvor jeg vil have kopien på, men kun en url til kildefilen...
Avatar billede simonvalter Praktikant
30. juli 2003 - 22:55 #12
ok .. jeg kan ikke hjælpe med dit script .. men hvis du har meget adgang til den anden server så er det jo næsten besværligt at lave det i et eller andet sprog hvis du bare kunne schedule serveren til at tage den backup.
Avatar billede simonvalter Praktikant
30. juli 2003 - 22:58 #13
hvis det skal være i feks asp burde du lukke dette spm og oprette i feks asp forumet .. så er der nok større chance for hjælp.
har du en linux server med shell adgang til så kan jeg lave et lille script til dig som klarer det .. er det windows så skal du feks have fat i et .bat script der kører en timer der tager den backup...
men har du kun ftp access og det er noget webserver .. så prøv feks i asp/javscript.
Avatar billede samuelsen Nybegynder
30. juli 2003 - 22:59 #14
det prøver jeg...
Avatar billede simonvalter Praktikant
30. juli 2003 - 23:00 #15
husk at ligge et svar selv og accepter for at få lukket
Avatar billede arne_v Ekspert
30. juli 2003 - 23:34 #16
Jeg har stadigvæk ikke helt forstået hvorfor du ikke kører noget på
din PC som henter XML filen fra den ene server med HTTP og gemmer på
den anden enten med direkte fil adgang eller med FTP.
Avatar billede Slettet bruger
31. juli 2003 - 00:26 #17
Med ASP:

1. Download XMLObject() fra http://greystate.dk/xmlobject/
2. Lav flg. ASP side:

<% @language = "jscript" %><!-- #include file="xmlobject.asp" --><%

var xmlURL = "http://aptiva/testweb/experten/381852/filen.xml";
var saveTo = "c:\\filen-gemt.xml";

function doTheThing(sURL, sSavePath) {
    var oXML = new XMLObject(sURL);
    var sMsg = "OK";
   
    if (!oXML.error) {
        try {
            oXML.saveXML(sSavePath);
        } catch (IOExcep) {
            sMsg = "Fejl: " + IOExcep.description;
        }
    } else {
          sMsg = "Fejl: " + oXML.errorDesc;
    }
 
  return sMsg;
}

sOutput = doTheThing(xmlURL, saveTo);

%>

<%= sOutput %>

3. Sørg for at IIS har skriverettigheder i mappen du vil gemme i.
4. Åbn ASP siden i en browser...

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