[javascript] String-representatie van een DOM document

Pagina: 1
Acties:

  • DPLuS
  • Registratie: April 2000
  • Niet online
Hoi,

Stel dat ik een XML DOM-document heb gemaakt d.m.v. javascripting (CreateElement, appendchild enz. enz.)
Hoe krijg ik het dan voorelkaar om hier de string-representatie van tevoorschijn te toveren, zodat ik dit (nu nog in-memory) XML bestand via een XMLHTTPrequest kan versturen naar de server...

Ik kreeg op google wat hits terug op DOMsource, maar dat leek op het eerste gezicht meer iets van JAVA te zijn, en geen javascript.


OK, hier een voorbeeld in JAVA waar het gegenereerde XML bestand geprint wordt via system.out.println:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
import org.w3c.dom.*;

import javax.xml.parsers.*; 
import javax.xml.transform.*; 
import javax.xml.transform.dom.DOMSource; 
import javax.xml.transform.stream.StreamResult; 


class CreateDomXml 
{
  public static void main(String[] args) 
  {
    try{
    //Create instance of DocumentBuilderFactory
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    //Get the DocumentBuilder
    DocumentBuilder docBuilder = factory.newDocumentBuilder();
    //Create blank DOM Document
        Document doc = docBuilder.newDocument();

    //create the root element
        Element root = doc.createElement("root");
    //all it to the xml tree
        doc.appendChild(root);
    
      //create a comment
      Comment comment = doc.createComment("This is comment");
      //add in the root element
      root.appendChild(comment);

    //create child element
    Element childElement = doc.createElement("Child");
    //Add the atribute to the child
    childElement.setAttribute("attribute1","The value of Attribute 1");
    root.appendChild(childElement);
    

    TransformerFactory tranFactory = TransformerFactory.newInstance(); 
    Transformer aTransformer = tranFactory.newTransformer(); 

    Source src = new DOMSource(doc); 
    Result dest = new StreamResult(System.out); 
    aTransformer.transform(src, dest); 


    }catch(Exception e){
      System.out.println(e.getMessage());
    }


  }
} 


Wat ik nu wil is die string-representatie via JavaScript zodat ik hem kan HTTP POST-en.

[ Voor 69% gewijzigd door DPLuS op 04-11-2005 13:46 ]


  • André
  • Registratie: Maart 2002
  • Laatst online: 23-04 12:47

André

Analytics dude

Hmmjah, ik denk dat je een recursieve functie moet maken die vanaf je hoofdelement alle childNodes doorloopt en die in een string plakt.

  • DPLuS
  • Registratie: April 2000
  • Niet online
Hmm, d'r zal toch wel een makkelijke W3C DOM functie zijn zoals .toString() ofzo?
Ik kan er verder vrij weinig over vinden....

[ Voor 5% gewijzigd door DPLuS op 04-11-2005 17:25 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:26

crisp

Devver

Pixelated

In Gecko:
JavaScript:
1
var string = (new XMLSerializer()).serializeToString(domnode);

Geen idee of IE soortgelijke functionaliteit heeft...
Opera ondersteunt DOM level 3 load and save vziw

[ Voor 16% gewijzigd door crisp op 04-11-2005 17:57 ]

Intentionally left blank