Создать XML-документ на стороне клиента GWT

Я пытаюсь создать некоторые XML-файлы на клиенте, а затем отправить их на сервер (ничего особенного, просто что-то вроде <root><blabla>...</blabla>...</root>).

Делать это вручную было бы возможно, но крайне негибко, и я вижу, что делаю много ошибок. Поэтому я искал генератор XML в GWT и нашел пакет "com.google.gwt.xml.client". К сожалению, я не могу найти примеры, как создавать XML-документы с его помощью. Кто-нибудь может привести пример (или пример)?

С наилучшими пожеланиями, Стефан

3 ответа

Решение

Вот пример. Для генерации следующего XML:

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

Вы должны написать следующий код на стороне клиента Java:

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());
}

Хорошо, ваш anser работает, но некоторые вещи нужно добавить.

Сначала вы должны включить

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

в вашем файле *gwt.xml (http://blog.elitecoderz.net/gwt-and-xml-first-steps-with-comgooglegwtxmlerste-schritte-mit-gwt-und-xml-unter-comgooglegwtxml/2009/05/)

во-вторых, вы используете следующие пространства имен:

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

Принятый ответ правильный, но есть небольшая ошибка, узел 1 и узел 2 должны быть связаны с root, а не с doc.

Итак, эта строка:

doc.appendChild(node1);

действительно должно быть:

root.appendChild(node1);
Другие вопросы по тегам