我正在尝试对气象数据(https://www.arpa.veneto.it/bollettini/meteo60gg/0083.xml)执行解析。我想为每个传感器提取VM, VMIN和VMAX,但不幸的是,使用以下代码,只有第一个节点("温度a ")被提取:你知道为什么会发生这种情况吗?
val xmlDoc = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(data)
xmlDoc.documentElement.normalize()
val SENSOR= xmlDoc.getElementsByTagName("SENSOR")
for(i in 0..SENSOR.length - 1){
var SensorNode : Node = SENSOR.item(i)
if (SensorNode.getNodeType() === Node.ELEMENT_NODE) {
var SensorElem = SensorNode as Element
var TIPOsensorescelto =
val SENSORchosen = SensorElem.getElementsByTagName("PARAMNM").item(0).textContent
val istantList = SensorElem.getElementsByTagName("DATI")
for(i in 0..istantList.length - 1) {
var istantNode: Node = istantList.item(i)
if (istantNode.getNodeType() === Node.ELEMENT_NODE) {
val elem = istantNode as Element
val mMap = mutableMapOf<String, String>()
for(j in 0..elem.attributes.length - 1)
{
mMap.putIfAbsent(elem.attributes.item(j).nodeName, elem.attributes.item(j).nodeValue)
}
/// saving stuff
}
}
}
}
已解决:问题是在保存的东西,因为我试图保存一个标记只存在于第一个节点。报告的代码为我工作。