public static Dictionary getDictionaryFromElement(Element element) { Dictionary ret = new Dictionary(); NodeList l = element.getChildNodes(); String lastKey = ""; for (int i = 0; i < l.getLength(); ++i) { Node node = l.item(i); if ("key".equalsIgnoreCase(node.getNodeName())) { lastKey = node.getTextContent(); continue; } else if ("string".equalsIgnoreCase(node.getNodeName())) { if (!lastKey.equals("")) { ret.put(lastKey, node.getTextContent()); } continue; } else if ("integer".equalsIgnoreCase(node.getNodeName())) { if (!lastKey.equals("")) { ret.put(lastKey, Integer.parseInt(node.getTextContent())); } continue; } else if ("boolean".equalsIgnoreCase(node.getNodeName())) { if (!lastKey.equals("")) { ret.put(lastKey, Boolean.parseBoolean(node.getTextContent())); } continue; } else if ("list".equalsIgnoreCase(node.getNodeName())) { if (!lastKey.equals("")) { ret.put(lastKey, ListParser.getListFromElement((Element) node)); } continue; } else if ("dict".equalsIgnoreCase(node.getNodeName())) { if (!lastKey.equals("")) { ret.put(lastKey, getDictionaryFromElement((Element) node)); } continue; } } return ret; }