code: public static boolean convertDOMtoMap(Node nodeXML, Map<String,Object> map, boolean bProcessChildren)
      {
          NodeList nodeList = nodeXML.getChildNodes();
          for (int i = 0; i < nodeList.getLength(); i++)
          {
              Node node = nodeList.item(i);
              String strKey = node.getNodeName();
              short sNodeType = node.getNodeType();
              if (sNodeType == Node.ELEMENT_NODE)
              {
                  String strValue = Constant.BLANK;
                  if (node.getChildNodes() == null)
                      strValue = null;
                  else if (node.getChildNodes().getLength() == 0)
                      strValue = null;
                  else if ((node.getChildNodes().getLength() == 1) && (node.getChildNodes().item(0).getNodeType() == Node.TEXT_NODE))
                      strValue =  node.getChildNodes().item(0).getNodeValue();
                  else if (bProcessChildren)
                  	MapMessage.convertDOMtoMap(node, map, bProcessChildren);
                  if ((strValue != Constant.BLANK) && (strValue != null))
                      map.put(strKey, strValue);
                  //?else
                  //?    Util.getLogger().warning("--------Error - Create Non-text map node? ------");
              }
              else // if (sNodeType == Node.TEXT_NODE)
              {
                  // ???
              }
          }
          return true;    // Success
      }
docs: Set the message data as a DOM Hierarchy.
  @return True if successful.