Avatar billede martin_moth Mester
08. december 2002 - 15:34 Der er 16 kommentarer og
1 løsning

Slette elementer i XML-fil

Hej skal slette et element fra en XML-fil vha. asp. Hvordan gør man det?

Min XML-fil ser sådan her ud:

<?xml version="1.0" encoding="ISO-8859-1"?>
<moedeOversigt>
  <moede id="1">
    <emne>Blaa</emne>
      <dato>15/12-2002</dato>
      <start>1:30</start>
      <slut>5:30</slut>
      <lokale>Blaaa</lokale>
      <deltager>Deltager 1</deltager>
      <deltager>Deltager 2</deltager>
  </moede>
  <moede id="2">
    ... osv.


Min .asp-fil, der skal slette mødet med id=2, ser sådan ud:

<SCRIPT LANGUAGE=JSCRIPT RUNAT=SERVER>
var oSource = Server.CreateObject("MSXML2.DOMDocument");
oSource.async = false;
oSource.load(Server.MapPath("moeder.xml"));
var strPath = "//moede[@id='2']";
var oMoede = oSource.documentElement.selectSingleNode(strPath);

// 2. Efter at moedet med id=2 er oprettet som oMoede, skal det slettes
   
oSource.documentElement.removeChild(oMoede);
// Nu skulle XML-filen så gerne opdateres på en eller anden måde... Hvordan?

// 3. Efter at moedet er slettet, kaldes visOversigt.asp
Response.Charset = "iso-8859-1";
Response.Redirect("visOversigt.asp");
</SCRIPT>
Avatar billede medions Nybegynder
08. december 2002 - 15:43 #1
Lav en Slet event hvor ID er lig med 2 fx. -Du får fat i din Attribute sådan her:
Attributes.getNamedItem("id")

//>Rune
Avatar billede martin_moth Mester
08. december 2002 - 15:50 #2
Jeg er ret så meget newbie i XML / ASP.

Såå - hvordan helt prøcist, sørger jeg for at det Moeder.xml bliver gemt rent fysisk på serveren, når jeg har slettet oMoede?
Avatar billede medions Nybegynder
08. december 2002 - 15:56 #3
Ok, siden du er Newbie :-) -så tror jeg du får mest ud af at læse denne artikel...
http://xmlfiles.com/articles/seth/xmldatatransfer/default.asp

//>Rune
Avatar billede martin_moth Mester
08. december 2002 - 15:57 #4
Jeg kan også formulere mig mere bredt:

Jeg har en asp-fil hvor jeg udfører ændringer i et xml-dokument, som vist ovenfor. Dette kan f.eks. være at oprette eller slette et element i XML-dokumentet.
Men når jeg har tilføjet/slettet elementer i XML-filen, hvordan sørger jeg så for, at XML-filen bliver overskrevet af den nye, ændrede XML-fil?
Avatar billede medions Nybegynder
08. december 2002 - 16:00 #5
Det kommer an på hvordan du tilgår den! -Bruger du FSO eller hvordan gør du?

//>Rune
Avatar billede martin_moth Mester
08. december 2002 - 16:01 #6
I mit spørgsmål er hele asp-filens indhold gengivet...:o)
Avatar billede medions Nybegynder
08. december 2002 - 16:04 #7
Ahh okay :-D
-Jamen her gemmer du jo ikke din XML fil!

Hvis du kan gennemskue dette, så brug det. Jeg bruger det til en backupsektion i mit Admin :o)

        strSQL = "SELECT * FROM tblCustomers"
        Set objRs = objConn.Execute(strSQL)
       
        output = "<backup id=""" & Now() & """>" & vbCrLf
            While Not objRs.EOF
              i=i+1
              output = output & "    <customers>" & vbCrLf
              output = output & "        <customername>" & CharConverter(objRs("CustomerName")) & "</customername>" & vbCrLf
              output = output & "        <customersnotes>" & CharConverter(objRs("CustomerNotes")) & "</customersnotes>" & vbCrLf
              output = output & "    </customers>" & vbCrLf
            objRs.MoveNext()
            Wend
        output = output & "</backup>"

        strFileName = "admin/backup/Backup.xml"
        call appendToFile(strFileName, Output)

        Function appendToFile(strFileName, LogText)

            WhichFile = Server.MapPath(strFileName)
                Set objFso = CreateObject("Scripting.FileSystemObject")
                Set objFile = objFso.OpenTextFile(WhichFile, 8, TRUE)
            objFile.Write(LogText)
            objFile.Close
          Set objFile  = Nothing
          Set objFso = Nothing
        End Function

Ellers må du lige sige til!

//>Rune
Avatar billede medions Nybegynder
08. december 2002 - 16:07 #8
Ønsker du dog stadivæk at bruge MSXML2 så kan du læse dig til Save metoden her:

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/xmlsdk30/htm/xmmthsave.asp

//>Rune
Avatar billede martin_moth Mester
08. december 2002 - 16:09 #9
" Ahh okay :-D
-Jamen her gemmer du jo ikke din XML fil!"

Netop!!!!

Det er fordi jeg ikke ved hvordan man gør det?

Jeg kunne forestille mig, at jeg blot skal tilføje en linie i retning af:

oSource.save("Moeder.xml");

Men kan ikke få det til at virke - sikkert fordi der er en eller anden banalitet, jeg ikke kender til. Som sagt, jeg er helt grøn, og den øvrige kode i min asp-fil har jeg fået andetsteds fra. Men je SAKL tage udgangspunkt i den kode :o(

Såå - har du et forslag i retning af oSource.save("Moeder.xml"); - man som virker ;o) ???
Avatar billede medions Nybegynder
08. december 2002 - 16:12 #10
Prøv sådan her!

var oSource = Server.CreateObject("MSXML2.DOMDocument");
var oSource2 = Server.CreateObject("MSXML2.DOMDocument");
oSource.async = false;
oSource.load(Server.MapPath("moeder.xml"));
var strPath = "//moede[@id='2']";
var oMoede = oSource.documentElement.selectSingleNode(strPath);
        oSource.save(oSource2.XMLDocument);

//>Rune
Avatar billede martin_moth Mester
08. december 2002 - 16:13 #11
Der var den!!!

oSource.save(Server.MapPath("Moeder.xml"))

Når man er så ny som mig, kan man bruge laaaang tid på at finde ud af de mest simple ting - mange tak for hjælpen (150 var nok i overkanten, men OK, du gav et par gode links og var hurtig med dit svar)

Takker, Martin
Avatar billede medions Nybegynder
08. december 2002 - 16:15 #12
Anytime ;o)
Thx 4 Poinz

//>Rune
Avatar billede simon.ulsnes Nybegynder
08. december 2002 - 22:07 #13
Ikke for at være flueknepper, men en anden gang burde du nok stille sådan nogle spørgsmål i den rigtige kategori... ASP...
Avatar billede martin_moth Mester
09. december 2002 - 01:26 #14
Hmmm - hvad er den rigtige kategori?

Spørgsmålet drejer sig om at få slettet elementer i et XML-dokument (kategori=XML?)
Dette gøres via et javascript (kategori=javascript?)
der kaldes fra en asp-fil (kategori=asp?)

Jeg var selv i tvivl inden jeg postede - og valgte XML, til nogens utilfredshed, kan jeg se ;o)
Avatar billede simon.ulsnes Nybegynder
09. december 2002 - 07:08 #15
Du skriver da selv at du bruger ASP ("min .asp fil ser sådan ud:"), men for min skyld ingen alarm, som sagt.
Avatar billede medions Nybegynder
09. december 2002 - 07:35 #16
simon.ulsnes> Dette er et af de spørgsmål hvor det er 50-50! Så her er der vidst ikke noget at diskutere! -hvis du gerne vil diskutere sådanne indlæg er, så prøv at kig engang over i Java kategorien og se prøv at fortælle alle de mennesker der opretter JavaScript spørgsmål unde Java kategorien!

Dette spørgsmål handler jo næsten specefikt om XML. Martin_Moth spørger jo præcist decideret til XML!

//>Rune
Avatar billede martin_moth Mester
09. december 2002 - 12:29 #17
Hørt! ;o)
Over and out, Martin
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