docs: def measurements_from_xml(filename,
                            collect_histograms=True,
                            cd_parent=False,
                            silence=False):
      """
      Read in a list of Measurements from XML
      """
      if not os.path.isfile(filename):
          raise OSError("the file {0} does not exist".format(filename))
      silence_context = silence_sout_serr if silence else do_nothing
  
      filename = os.path.abspath(os.path.normpath(filename))
  
      if cd_parent:
          xml_directory = os.path.dirname(filename)
          parent = os.path.abspath(os.path.join(xml_directory, os.pardir))
          cd_context = working_directory
      else:
          parent = None
          cd_context = do_nothing
  
      log.info("parsing XML in {0} ...".format(filename))
      with cd_context(parent):
          parser = ROOT.RooStats.HistFactory.ConfigParser()
          with silence_context():
              measurements_vect = parser.GetMeasurementsFromXML(filename)
          # prevent measurements_vect from being garbage collected
          ROOT.SetOwnership(measurements_vect, False)
          measurements = []
          for m in measurements_vect:
              if collect_histograms:
                  with silence_context():
                      m.CollectHistograms()
              measurements.append(asrootpy(m))
      return measurements