Stefan
Stefan

Reputation: 14863

Create XML document on GWT client side

I'm trying to create some XML files on the client and then send them to the server (nothing special, just something like <root><blabla>...</blabla>...</root>).

Doing this by hand would be possible but extremely inflexible and I see myself making a lot of mistakes. So I was looking for a XML generator in GWT and found the "com.google.gwt.xml.client" Package. Sadly I cant find examples how to create XML documents with it. Can anybody provide me an example (or linke ot an examle)?

Best regards, Stefan

Upvotes: 3

Views: 5516

Answers (3)

user2232206
user2232206

Reputation: 11

Accepted answer is right, but there is a little mistake on it, node1 and node2 should be linked to root, not to doc.

So this line:

doc.appendChild(node1);

should really be:

root.appendChild(node1);

Upvotes: 1

Stefan
Stefan

Reputation: 14863

Well ok, your anser works but some things to append.

First you have to include

<inherits name="com.google.gwt.xml.XML" />

in your *gwt.xml file (http://blog.elitecoderz.net/gwt-and-xml-first-steps-with-comgooglegwtxmlerste-schritte-mit-gwt-und-xml-unter-comgooglegwtxml/2009/05/ )

second you use the following namespaces:

import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Element;
import com.google.gwt.xml.client.XMLParser;

Upvotes: 3

bichehype
bichehype

Reputation: 172

Here is an example. To generate the following xml :

<root>
  <node1 attribute="test">
     my value
  </node1>
  <node2 attribute="anothertest"/>
</root>

You have to write the following code on the Java client side :

import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Element;
import com.google.gwt.xml.client.XMLParser;

public static void main(String[] args) {
    Document doc = XMLParser.createDocument();

    Element root = doc.createElement("root");
    doc.appendChild(root);

    Element node1 = doc.createElement("node1");
    node1.setAttribute("attribute","test");
    node1.appendChild(doc.createTextNode("my value"));
    doc.appendChild(node1);

    Element node2 = doc.createElement("node2");
    node2.setAttribute("attribute","anothertest");
    doc.appendChild(node2);

    System.out.println(doc.toString());
}

Upvotes: 7

Related Questions