Toon posts:

XML / ASP removeChild

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik loop me helemaal gek te zoeken op Google en kom er niet uit mensen, |:(
heel erg frusterend allemaal...

Ok this is the deal:

Ik heb een XML bestandje, welke er ongeveer zo uitziet:
<nodes>
<childnode id="1">
<childchild id="2">
<naam>Test</naam>
</childchild>
</childnode>
</nodes>

dan heb ik een functie in asp, die verwijderd een childNode:

code:
1
2
3
4
5
6
7
8
 Function classDeleteNode(XPath)
    Dim objOld
    For Each objOld In objDoc.documentElement.selectNodes(XPath)
      objDoc.documentElement.removeChild objOld
    Next
    objDoc.Save XMLFile
    Set objOld = Nothing
 End Function


er wordt gebruik gemaakt van Microsoft.XMLDOM....en
die functie roep ik aan en dan geef ik een XPath parameter mee:
XPath = "//nodes/childnode[@id='1']/childchild[@id='2']"

Nu zou deze functie de "childchild" moeten verwijderen maar dit weigert hij gewoon, terwijl als ik XPath : "//nodes/childnode[@id='1']" zou gebruiken hij dit wél doet :|

Iemand suggesties??? Of is het gewoon simpelweg niet mogelijk om meer dan 2 "niveaus" diep te gaan hiermee?

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10 12:59
Volgens mij selecteer je de node wel goed, maar je moet geen removeChild roepen tegen het documentElement maar tegen de parentNode van je geselecteerde node. In dit geval dus de node <childnode id="1">.

Verwijderd

Topicstarter
bedankt voor je snelle reply, m'n documentElement is toch de eerste (root)
node die hij tegenkomt? in dit geval <nodes> ?

want hoe zou de syntax dan moeten worden? :7

code:
1
objDoc.documentElement.removeChild objOld


heb al geprobeerd om documentElement dus te laten vervallen maar dan moet ik m'n XPath weer aanpassen en doet ie vervolgens hetzelfde weer |:(

  • Amras
  • Registratie: Januari 2003
  • Laatst online: 01-10 12:59
Je moet hem verwijderen van z'n parent element:
ASP.NET Visual Basic:
1
objOld.parentNode.removeChild objOld

(heb het getest in javascript, maar zo moet ie wel werken denk ;))

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
 Function classDeleteNode(XPath)
    Dim objOld
    For Each objOld In objDoc.selectNodes(XPath)
      objOld.parentNode.removeChild objOld
    Next
    objDoc.Save XMLFile
    Set objOld = Nothing
 End Function


_/-\o_ A Big ThankYou to Amras

Echt superbedankt voor je hulp, zit er al vanaf vanochtend mee te klooien!
Mijn avond is weer goed :D