code: private Map<String, String> asMap(NodeList kvList) {
      	Map<String, String> rt = new HashMap<String, String>();
      	
      	for (int i = 0; i < kvList.getLength(); ++i) {
      		Node item = kvList.item(i);
      		NodeList itemChildren = item.getChildNodes();
      		
      		if (item.getNodeType() != Node.ELEMENT_NODE) {
      			continue;
      		}
      		
      		String key = null;
      		String value = null;
      		
      		for (int j = 0; j < itemChildren.getLength(); ++j) {
      			Node child = itemChildren.item(j);
      			
      			if (child.getNodeType() != Node.ELEMENT_NODE) {
          			continue;
          		}
      			
      			if ("key".equalsIgnoreCase(child.getNodeName())) {
      				key = child.getTextContent();
      			} else if ("value".equalsIgnoreCase(child.getNodeName())) {
      				value = child.getTextContent();
      			}
      		}
      		
      		if (key != null && value != null) {
      			rt.put(key, value);
      		} else {
      			LOGGER.error("Invalid K/V pair: key: " + key + ", value: " + value);
      		}
      	}
      	
      	return rt;
      }
docs: Parses a list of key/value pairs into a map.
  <pre>
  &lt;item&gt;
  &lt;key&gt;...&lt;/key&gt;
  &lt;value&gt;...&lt;/value&gt;
  &lt;/item&gt;
  &lt;item&gt;
  ...
  &lt;/item&gt;
  ...
  </pre>
  
  @param kvList
  @return