code: def process_nxml_str(nxml_str, output_fmt='json', outbuf=None, cleanup=True,
                       key='', **kwargs):
      
      tmp_fname = 'PMC%s_%d.nxml' % (key, mp.current_process().pid)
      with open(tmp_fname, 'wb') as fh:
          fh.write(nxml_str.encode('utf-8'))
      try:
          sp = process_nxml_file(tmp_fname, output_fmt, outbuf, cleanup,
                                 **kwargs)
      finally:
          if cleanup and os.path.exists(tmp_fname):
              os.remove(tmp_fname)
      return sp
docs: Return processor with Statements extracted by reading an NXML string.
  
      Parameters
      ----------
      nxml_str : str
          The string value of the NXML-formatted paper to be read.
      output_fmt: Optional[str]
          The output format to obtain from Sparser, with the two options being
          'json' and 'xml'. Default: 'json'
      outbuf : Optional[file]
          A file like object that the Sparser output is written to.
      cleanup : Optional[bool]
          If True, the temporary file created in this function,
          which is used as an input file for Sparser, as well as the
          output file created by Sparser are removed. Default: True
      key : Optional[str]
          A key which is embedded into the name of the temporary file
          passed to Sparser for reading. Default is empty string.
  
      Returns
      -------
      SparserXMLProcessor or SparserJSONProcessor depending on what output
      format was chosen.