0

我已经使用 GWT 的 XMLParser 来解析 XML,但是当我尝试解析属性时,问题就来了。我可以从 API 文档中看到 Element 具有获取属性节点或值的方法,如果您事先知道属性名称将是什么,例如,您可以这样做

element.getAttribute("name");

但是没有检索所有属性的方法。

所以我尝试了这种方式:

import com.google.gwt.xml.client.Element;
import com.google.gwt.xml.client.Node;
import com.google.gwt.xml.client.Attr;
...
NodeList nodes = element.getChildNodes();
for (int i=0; i<nodes.getLength(); i++) {
    Node node = nodes.item(i);
    if (node instanceof Element) {
        //do something with child element
    }
    if (node instanceof Text) {
        //do something with text
    }
    if (node instanceof Attr) {
        //this is never reached!
    }
}

找不到任何属性的 XML 响应如下:

<?xml version="1.0" encoding="UTF-8"?>
<grid>
  <field primary="true" id="volunteerId" caption="ID" width="30" type="integer"/>
  <field id="name" caption="Name" filter="true" type="concat">
    <field id="forename"/>
    <field id="surname" />
  </field>
  <field id="role" caption="Role" filter="true" type="text"/>
  <field id="instructions" caption="Instructions" type="boolean"/>
  <field id="security" caption="SIA" type="boolean" image="security"/>
</grid>

有没有办法在不硬编码预期属性名称的情况下获取属性列表及其值?

4

1 回答 1

2

我认为应该可以使用http://www.gwtproject.org/javadoc/latest/com/google/gwt/xml/client/Node.html#getAttributes()

于 2013-08-29T20:55:42.640 回答