[xml/javascript] xml manipulatie met javascript

Pagina: 1
Acties:

  • martijnvanegdom
  • Registratie: Januari 2004
  • Laatst online: 23-01 19:11
Ik heb het volgende probleem. Via een http-request krijg ik in een mooi xml bestand binnen. Het xml serialized terug sturen naar de server is ook geen probleem.

dtd:xml
code:
1
2
3
4
5
6
7
8
<!DOCTYPE Language [
<!ELEMENT languages (language)+>
    <!ELEMENT language (name,local,available,code)>
        <!ELEMENT name (#PCDATA)>
        <!ELEMENT local (#PCDATA)>
        <!ELEMENT available (#PCDATA)>
        <!ELEMENT code (#PCDATA)>
]>


Nu wil ik met javascript een nieuwe taal toevoegen aan het xml bestand wat ik kan benaderen als object. Een nieuwe taal toevoegen (dus een nieuwe child aan de root met childNodes

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// get xml object 
var xmlObject = oServerConnection.responseXML;
    
// Getting the root of a document delivers a element object. 
var xmlRootOfDocument =  xmlObject.documentElement

// Create a new element for a new lanuage 
var xmlNewLanguage = xmlObject.createElement('language')
var xmlNewLanuageName = xmlObject.createElement('name')
var xmlNewLanuageLocal = xmlObject.createElement('local')
var xmlNewLanuageCode = xmlObject.createElement('code')
var xmlNewLanuageAvailable = xmlObject.createElement('available')

// appending nodes
xmlNewLanguage.appendChild(xmlNewLanuageName);
xmlNewLanguage.appendChild(xmlNewLanuageLocal);
xmlNewLanguage.appendChild(xmlNewLanuageCode);
xmlNewLanguage.appendChild(xmlNewLanuageAvailable);
    
xmlRootOfDocument.appendChild(xmlNewLanguage);


Dit gaat goed. Echter mijn probleem is tweeledig. Hoe voeg ik data toe aan het nieuwe element en hoe pas ik data aan in een bestaat element. Daarnaast wat is de best manier omdat uit te lezen. Ik wil graag geen browser specifieke oplossingen gebruiken omdat dat altijd gezeur geeft, tenzij het niet anders kan uiterraad

Verwijderd

1) createTextNode()
2) element.firstChild.nodeValue

je hebt dus in het element nog een textelement zitten. De nodeValue daarvan bevat de text van het element.

[ Voor 37% gewijzigd door Verwijderd op 10-04-2006 11:08 ]


  • martijnvanegdom
  • Registratie: Januari 2004
  • Laatst online: 23-01 19:11
Aha.. dus een element vertegenwoordig niet een tag plus inhoud.. Maar een alleen een tag waaronder je weer een textNode hangt die de eigenlijke content bevat?

Verwijderd

juistem, kijk voor de gein ook eens in de DOMinspector van firefox, overal textNodes kom je dan tegen

[ Voor 88% gewijzigd door Verwijderd op 10-04-2006 11:21 ]


  • Michali
  • Registratie: Juli 2002
  • Laatst online: 09-12-2025
Klopt ja, je hebt dus elementen en textNodes, welke beide DOM nodes zijn. En textNodes bestaan puur uit tekst en worden in elementen geplaatst.

Noushka's Magnificent Dream | Unity