我已经使用 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>
有没有办法在不硬编码预期属性名称的情况下获取属性列表及其值?