Создать XML-документ на стороне клиента GWT - PullRequest
3 голосов
/ 01 августа 2011

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

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

С уважением, Стефан

Ответы [ 3 ]

7 голосов
/ 01 августа 2011

Вот пример. Для генерации следующего 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());
}
3 голосов
/ 01 августа 2011

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

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

<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 голос
/ 01 апреля 2013

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

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

doc.appendChild(node1);

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

root.appendChild(node1);
...