我正在尝试对此XMl进行排序
<phoneBook first="JJ">
<last>Jo</last>
<type>Cellphone</type>
</phoneBook>
由元素持续。
public static Map<String, Node> sortElements(Document doc, Map<String, Node> map, String sortBy){
if(map == null)
map = new HashMap<>();
NodeList selection =doc.getElementsByTagName("phoneBook");
for(int i = 0; i < selection.getLength(); i++){
Node rel = selection.item(i);
for(int j = 0; j < rel.getChildNodes().getLength(); j++){
Node jn = rel.getChildNodes().item(j);
if(jn.getNodeName().equals(sortBy)){
map.put(jn.getNodeValue(), rel);
}}}
return new TreeMap<>(map);
}
不幸的是一个节点是空的。它会抛出NPE! 我在DOM Parser中调用了这样的方法!
SortPhoneBook.sortElements(doc, null, "last");
有人能帮助我吗?
答案 0 :(得分:0)
您将空值放入地图键。
您的代码:
map.put(jn.getNodeValue(), rel);
只需将其替换为:
map.put(jn.getTextContent(), rel);