java将xml dom解析为对象
如何用这样的对象填充数组
class Sam{
String id;
String type;
String data;
}
从xml结构:
<Table name="Sam">
<Row id="374058">
<Col name="ID.1">374058</Col>
<Col name="TYPE.1">mob</Col>
</Row>
<Row id="374059">
<Col name="ID.1">374059</Col>
<Col name="TYPE.1">ff</Col>
</Row>
</Table>
找到了这样的“表”,但我下一步该怎么做才能从“行”中收集数据呢
List<Sam> samList = new new ArrayList<>();
NodeList nameNodeList = xml.getDocumentElement().getElementsByTagName("Table");
if (nameNodeList != null) {
for (int i = 0; i < nameNodeList.getLength(); i++) {
Node node = nameNodeList.item(i);
if (node.getAttributes().getNamedItem("name").getNodeValue().equals("Sam") &&
node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
//what should i do next, how can i fined ID,TYPE,DATA?
}
}
}
# 1 楼答案
试试这个。我尝试对问题进行编码,并得到以下输出。这段代码解析XML并构造Sam对象
代码:
输出:
输入:sam.xml
# 2 楼答案
你可以使用JAXB Unmarshalling
你也可以在Examples JAXB Unmarshalling中看到一些例子