Avatar billede pixeldude Nybegynder
06. maj 2003 - 20:15 Der er 8 kommentarer og
1 løsning

Slette i XML

Jeg har denne XML fil

<?xml version="1.0" encoding="ISO-8859-1" ?>
<news>
- <entry dato="06-05-2003 09:40:47">
  <journalist>Sebastian Dammark</journalist>
  <region>Ribe - Århus</region>
  <overskrift>Jubii</overskrift>
  <nyhed>Denne nyhed er opdateret</nyhed>
  </entry>
- <entry dato="06-05-2003 10:57:21">
  <journalist>Karsten Hansen</journalist>
  <region>København - Aalborg</region>
  <overskrift>Toget</overskrift>
  <nyhed>Toget er afsporet</nyhed>
  </entry>
- <entry dato="06-05-2003 12:41:11">
  <journalist>Johan Jokumsen</journalist>
  <region>Varde - Skjern</region>
  <overskrift>Oversvømmelse</overskrift>
  <nyhed>Så kom det. Hele området blev oversvømmet med spæk og fugt.</nyhed>
  </entry>
  </news>

Og jeg har en ASP fil der ser sådan ud:
<%
'Her sætter jeg mit kriterie
vid = "06-05-2003 10:57:21"

'Her opretter jeg mit objekt og loader mit dokument
Set objXML = Server.CreateObject("MSXML2.DOMDocument.4.0")
objXML.load("xml_xsl/news.xml")

'Her finder jeg det entry element som jeg ønsker at slette
Set ObjEntry = ObjXML.selectsingleNode("//entry[@dato='"& vid &"']")

'Her er det jeg ikke ved hvad jeg skal gøre

response.redirect("listnews.asp")
%>

Jeg ønster at slette et entry-element med de tilhørende "børn" som passer på det min variable(vID) indeholder.
Avatar billede hossein Nybegynder
06. maj 2003 - 21:04 #1
Se om det hjælper:   
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
        objXML.load("DokumentNavn.xml")
    Set objRootNode = objXML.documentElement

Sådan sletter jeg via asp:
    Set objOldItem = objRootNode.RemoveChild(objRootNode.childNodes(#))
    objXML.save("DokumentNavn.xml")
Avatar billede pixeldude Nybegynder
06. maj 2003 - 21:19 #2
Nu ser min ASP-fil sådan her ud:
<%
'Her henter jeg dato og klokkeslet fra querystring
vid = request.querystring("id")

Set objXML = Server.CreateObject("MSXML2.DOMDocument.4.0")
objXML.load("xml_xsl/news.xml")

'Her finder jeg det entry element som jeg ønsker at slette
Set ObjEntry = ObjXML.selectsingleNode("//entry[@dato='"& vid &"']")

'Her er det jeg ikke ved hvad jeg skal gøre
Set objOldItem = ObjEntry.RemoveChild(ObjEntry.childNodes(#))
objXML.save("DokumentNavn.xml")

response.redirect("listnews.asp")
%>

Men jeg får denne fejl:
Fejltype:
Der opstod en Microsoft VBScript-kompileringsfejl (0x800A03EA)
Der er en syntaksfejl
/jv/deletenews.asp, line 13, column 58
Set objOldItem = ObjEntry.RemoveChild(ObjEntry.childNodes(#))
---------------------------------------------------------^
Avatar billede hossein Nybegynder
06. maj 2003 - 21:27 #3
Du skal skrive isted for DokumentNavn.xml dit eget dokument navn.  her i: objXML.save("DokumentNavn.xml")
# prøv først med skifte ud med "nodeName".
Avatar billede pixeldude Nybegynder
06. maj 2003 - 21:37 #4
Så får jeg denne fejl:
Fejltype:
Der opstod en Microsoft VBScript-kørselsfejl (0x800A01A8)
Et objekt er obligatorisk: 'ObjEntry'
/jv/deletenews.asp, line 13
Avatar billede hossein Nybegynder
06. maj 2003 - 21:43 #5
du skal lave en objekt:
Set objXML = Server.CreateObject("Microsoft.XMLDOM")
        objXML.load("DokumentNavn.xml")  'dit eget dokument navn
    Set ObjEntry = objXML.documentElement 'Nu laver en objekt ved navnet ObjEntry
Avatar billede pixeldude Nybegynder
06. maj 2003 - 21:57 #6
Nu har jeg lavet elementet, hvordan finder jeg så den som jeg vil slette?
Avatar billede hossein Nybegynder
06. maj 2003 - 22:45 #7
Avatar billede pixeldude Nybegynder
07. maj 2003 - 00:16 #8
Tak for linket. Det var det der skulle til.
Her kan du se mit dokument:
<%
'Her henter jeg dato og klokkeslet fra querystring
vid = request.querystring("id")

Set objXMLDoc = CreateObject("Microsoft.XMLDOM")
objXMLDoc.async = False
objXMLDoc.load server.mappath("xml_xsl/news.xml")

Set objRoot = objXMLDoc.documentElement
Set objExNode = objRoot.removeChild(objRoot.selectsingleNode("//entry[@dato='"& vid &"']"))

ObjXMLDoc.save server.mappath("xml_xsl/news.xml")

Response.Redirect("newslist.xml")
%>
Avatar billede hossein Nybegynder
07. maj 2003 - 11:38 #9
Det var godt, tak for pointene!
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