code: def read_msbuild_xml(path, values={}):
      
  
      # Attempt to read the file contents
      try:
          document = parse(path)
      except Exception as e:
          logging.exception('Could not read MS Build XML file at %s', path)
          return values
  
      # Convert the XML to JSON format
      logging.info('Processing MS Build XML file at %s', path)
  
      # Get the rule node
      rule = document.getElementsByTagName('Rule')[0]
  
      rule_name = rule.attributes['Name'].value
  
      logging.info('Found rules for %s', rule_name)
  
      # Proprocess Argument values
      __preprocess_arguments(rule)
  
      # Get all the values
      converted_values = []
      __convert(rule, 'EnumProperty', converted_values, __convert_enum)
      __convert(rule, 'BoolProperty', converted_values, __convert_bool)
      __convert(rule, 'StringListProperty', converted_values,
                __convert_string_list)
      __convert(rule, 'StringProperty', converted_values, __convert_string)
      __convert(rule, 'IntProperty', converted_values, __convert_string)
  
      values[rule_name] = converted_values
  
      return values
docs: Reads the MS Build XML file at the path and returns its contents.
  
      Keyword arguments:
      values -- The map to append the contents to (default {})