Avatar billede eksperten1 Nybegynder
16. oktober 2002 - 12:08 Der er 9 kommentarer og
1 løsning

Node exists

Jeg vil gerne tilføje en childnode til en specifik node i et xml dokument, men det er ikke sikkert at denne node eksisterer. Hvordan sikrer jeg mig at noden eksisterer ?

Det er serverside VBScript/ASP på en 2000 Server.
'// Her er der ikke den node der skal tilføjes til:
<?xml version="1.0"?>
<pagetamplate>
<dnaspot>
<id>12</id>
</dnaspot>
</pagetemplate>

'// Her er der oprettet noden med en childnode
<?xml version="1.0"?>
<pagetamplate>
<dnaspot>
<id>12</id>
</dnaspot>
<pageelements>
<element>
<id>1388</id>
<leftspot>12.5</leftspot>
</element>
</pageelements>
</pagetemplate>

Hvordan kontrollerer jeg om <pageelements> eksisterer før end jeg opretter det og tilføjer et child ?

vhE1
Avatar billede eksperten1 Nybegynder
16. oktober 2002 - 12:35 #1
Hmm, nu har jeg ændret lidt i det, sådan at der ikke eksisterer en <pagelements>, istedet for ligger de enkelte pageelement (som nu hedder DNAelement) direkte som childs til "pagetemplate".

Hvordan kontrollerer jeg om der findes et "dnaelement" hvor at <id> = nn OG <leftspot> = XX ??
Avatar billede Slettet bruger
16. oktober 2002 - 12:40 #2
Du gør f.eks. sådan:

Set oPageElements = oXML.selectSingleNode("/pagetemplate/pageelements")
If (oPageElements) Then
  oPageElements.appendChild(...)
Endif

/CS
Avatar billede eksperten1 Nybegynder
16. oktober 2002 - 12:42 #3
>greystate
Hmm, kan jeg gøre det samme bare med flere kriterier ?
Avatar billede hoejrup Nybegynder
16. oktober 2002 - 13:53 #4
Har du ikke lavet en skrivefejl?

'// Her er der oprettet noden med en childnode
<?xml version="1.0"?>
<pagetemplate>        <!-- pagetamplate til pagetemplate -->
<dnaspot>
<id>12</id>
</dnaspot>
<pageelements>
<element>
<id>1388</id>
<leftspot>12.5</leftspot>
</element>
</pageelements>
</pagetemplate>

/per
Avatar billede eksperten1 Nybegynder
16. oktober 2002 - 13:55 #5
jo, godt set!
Avatar billede Slettet bruger
16. oktober 2002 - 14:18 #6
Ja - det kan du godt:

Set oNode = Set oPageElements = oXML.selectSingleNode("//dnaelement[id='" & NN & "'][leftspot='" & XX & '"]")
If (oPageElements) Then
  oPageElements.appendChild(...)
Endif

(Husk lige at sætte NN og XX til noget brugbart, ikke.. :-)
/CS
Avatar billede Slettet bruger
16. oktober 2002 - 14:19 #7
- Check forskellen på ' og " !!!

/CS
Avatar billede eksperten1 Nybegynder
16. oktober 2002 - 14:24 #8
Og hvis jeg så vil slette den før jeg opretter den igen ?
Set oNode = Set oPageElements = oXML.selectSingleNode("//dnaelement[id='" & NN & "'][leftspot='" & XX & '"]")
If (oPageElements) Then
  oNode.removeChild(oPageElements)
Endif

??
Avatar billede Slettet bruger
16. oktober 2002 - 20:44 #9
Noget i denne stil (ikke testet):

Set oPageElements = oXML.selectSingleNode("//dnaelement[id='" & NN & "'][leftspot='" & XX & '"]")
If (oPageElements) Then
  Set oParent = oPageElements.parentNode
  Set oNode = oParent.removeChild(oPageElements)
  ' Lav ændringer til oNode her...
 
  oParent.appendChild(oNode) ' Sæt tilbage i dokumentet
Endif

/CS
Avatar billede eksperten1 Nybegynder
16. oktober 2002 - 21:33 #10
Jeg ser frem til at teste det imorgen.

Jeg takker og lukker!

vhE1
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