Переход по узлу / элементам DOM - это GWT - PullRequest
0 голосов
/ 27 января 2012

У меня есть встроенный объект HTML (com.google.gwt.user.client.ui.InlineHTML), и я хотел бы рекурсивно пройти по элементам узла, чтобы найти «входной» узел (см. Ниже) и получить его тип (в следующем примере - флажок), однако он Кажется, что все, что я пробую, похоже, не работает с помощью Node & Element, но продолжает сталкиваться с проблемами ..

У кого-нибудь есть предложения о том, как мне поступить, или, еще лучше, укажите мне какой-нибудь код?

Спасибо

`

`

1 Ответ

1 голос
/ 27 января 2012

GWT имеет встроенный XML-парсер . Его можно использовать для преобразования действительного XML-элемента в его узел Objects, где вы можете перемещаться в нужную позицию или в нужный элемент.

Вот пример, как вы можете его использовать:

package XXXX.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.safehtml.shared.SafeHtml;
import com.google.gwt.user.client.ui.HTML;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.xml.client.Document;
import com.google.gwt.xml.client.Node;
import com.google.gwt.xml.client.NodeList;
import com.google.gwt.xml.client.XMLParser;

    public class XMLparser_ implements EntryPoint {

        public void onModuleLoad() {

            //a really simple XML sample
            final String xmlString = "<div><p>helle</p><p>World</p></div>";

            Document xml = XMLParser.parse(xmlString);

            //get the nodelist of the Document element can be more than one
            NodeList nodesRoot = xml.getChildNodes();
            for (int i = 0; i < nodesRoot.getLength(); i++) {
                Node node = nodesRoot.item(i);
                RootPanel.get().add(new Label(node.toString()));

                //get the childs of the first node
                NodeList nodesChild = node.getChildNodes();         
                for (int j = 0; j < nodesChild.getLength(); j++) {
                    Node node2 = nodesChild.item(j);
                    RootPanel.get().add(new Label(node2.toString()));
                }
            }

            SafeHtml safeHTML = new SafeHtml() {

                @Override
                public String asString() {
                    return xmlString;
                }
            };

            RootPanel.get().add(new HTML(safeHTML));

        }
    }

Это результат:

<div><p>helle</p><p>World</p></div>
<p>helle</p>
<p>World</p>
helle

World
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...