[asp/xml] Verwijderen van meerdere nodes

Pagina: 1
Acties:

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
Hallo,

Ik ben wat aan het stoeien met xml en asp, met XPath nodes selecteren, nodes aanmaken (dat lukt ook), en node en nodes verwijderen.

Alleen dit laatste krijg ik niet werken, ik krijg ook GEEN foutmelding, maar er is niets verwijderd, ookal heb ik al verschillende sites gevonden met het waarschijnlijke antwoord denk ik dat ik toch iets fout doe, aangezien het appenden wel goed gaat en ENKELE nodes gaat ook goed :+

M'n code zover
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Set objXML = Server.CreateObject("Microsoft.XMLDOM")

objXML.async = False
objXML.Load (XMLPath)
If objXML.parseError.errorCode <> 0 Then
    Print "[ Error in XML File ]"
End If

' ik wil alles van maand 5 verwijderen dus je zou zeggen 5/*/2005 (werkt toch met xpath?)
Path_To_Check = "/item/post[postdate='5/*/2005']"
Set DateElem = objXML.selectNodes(Path_To_Check)

If DateElem.Length > 0 Then
    For i = 0 To (DateElem.Length-1)
        DateElem.item(i).parentnode.removeChild DateElem.item(i).parentnode.selectSingleNode("post")
    Next
    Response.Write "All items from april are deleted."
Else
    Response.write "Geen elementen in deze maand"
End If


Ik zie het probleem niet zo, maar heb een donkerbruin vermoeden dat het ergens in het stukje path_to_check zit. heb er ook wat commentaar bij geplakt daar.

iemand? 8)7

  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
als je je xml ff post, dan kan je geholpen worden met de xpath ...

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
ok een moment


edit: http://www.adsoft.nl/Misc/Angelo/calendar/calendar.xml

[ Voor 84% gewijzigd door semicon op 08-04-2005 15:00 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 08-05 11:55

mulder

ik spuug op het trottoir

Wil je niet gewoon dit:
DateElem.item(i).parentnode.removeChild DateElem.item(i)

oogjes open, snaveltjes dicht


  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
Nee, helaas dat werkt ook niet, net getest, geen verschil (ook geen foutmleding :x)


edit: werkt zo'n asterix niet voor numerieke getallen soms?? 8 :?

edit2: rofl wie was Test? :D

[ Voor 43% gewijzigd door semicon op 08-04-2005 15:20 . Reden: rofl ]


  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
Ok. :S Het stukje dat je gepost had werkte toch, maar dan alleen als die xpath geen * bevat, als ik handmatig een datum ingeef, dan doet hij het, maar bij een * gaat het fout.

  • joopst
  • Registratie: Maart 2005
  • Laatst online: 01-10-2024
op http://www.w3.org/TR/xpath#section-String-Functions kan je vinden wat je allemaal met xpath kan doen.

als je alles wilt doen dat begint met 5, dan kan je bijvoorbeeld de volgende xpath gebruiken:
code:
1
/item/post[starts-with(postdate, '5')]

  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
die had ik toevallig ook gevonden, maar hoe kan ik zoiets "combineren" datik dus

start met 5 ( wildcard hier ) eigenif met 2005 (bijv)


het probleem ligt bij mij bij het combineren van dit hierboven, dat ik er geen wildcard tussen krijg

Verwijderd

/item/post[contains(postdate, "5/") and contains(postdate, "/2005") ]

Hierboven staat de XPath expressie die je zoekt.

Een sterretje kun je niet gebruiken als wildcard in een String.
Je bent waarschijnlijk in de war met de Xpath syntax voor Axes, daarin betekent een sterretje inderdaad "alles".

[ Voor 8% gewijzigd door Verwijderd op 08-04-2005 16:13 ]


  • semicon
  • Registratie: Augustus 2003
  • Laatst online: 20-08-2025
[ KNIP ]


Het werkt, als ik dit invoeg:

code:
1
 objXML.setProperty "SelectionLanguage", "XPath"


thx saghws

[ Voor 97% gewijzigd door semicon op 08-04-2005 16:22 ]


Verwijderd

Even terzijde, maar wanneer je data in XML op wil slaan, is 't misschien ook wel handig om een XML datumformaat aan te houden...
De meest gebruikte zijn 'yyyy-mm-dd' en 'yyyy-mm-ddThh:mm:ss', maar er zijn meer mogelijkheden. 'd/m/yyyy' zit daar helaas niet bij...
Pagina: 1