code: private Integer nodeListHashValue(NodeList list) {
          if (list == null) {
              return null;
          }
          int currentHash = 0;
          int listLength = list.getLength();
          
          // Iterate over each Node in list
          for (int iterator = 0; iterator < listLength; iterator++) {
              NamedNodeMap map = list.item(iterator).getAttributes();
              int numAttrs = map.getLength();
              
              // Iterate over all Attributes in this node 
              // and sum their hashCode()s
              for (int i = 0; i < numAttrs; i++){
                 Attr attr = (Attr) map.item(i);
                 int hash1 = attr.getNodeName().hashCode();
                 int hash2 = attr.getNodeValue().hashCode();
                 currentHash += hash1 + hash2;
              }
          }
          return currentHash;
      }
docs: Compute a hash by iterating over every Attribute in each Node in this NodeList
  and summing the hashCode()s of all attribute names and values