NamedNodeMap 的通用 foreach 迭代
在Java中,看看NameNodeMap接口,你如何用泛型迭代它?它似乎使用Node而不是String,但我不太确定如何使用Node对象...
NamedNodeMap namedNodeMap = doc.getAttributes();
Map<String, String> stringMap = (Map<String, String>) namedNodeMap;
for (Map.Entry<String, String> entry : stringMap.entrySet()) {
//key,value stuff here
}
是的,我可以看到如何在不使用泛型和常规for循环的情况下进行迭代,但我想使用上面的?成语?用于地图。当然,问题似乎在于,尽管有这个名字,NamedNodeMap实际上并没有实现Map接口!:(
猜猜你只需要在这里咬紧牙关,做这样的事情:
/*
* Iterates through the node attribute map, else we need to specify specific
* attribute values to pull and they could be of an unknown type
*/
private void iterate(NamedNodeMap attributesList) {
for (int j = 0; j < attributesList.getLength(); j++) {
System.out.println("Attribute: "
+ attributesList.item(j).getNodeName() + " = "
+ attributesList.item(j).getNodeValue());
}
}
没有什么比这更好的了?