code: def universal_extract_paragraphs(xml):
      
      try:
          paragraphs = elsevier_client.extract_paragraphs(xml)
      except Exception:
          paragraphs = None
      if paragraphs is None:
          try:
              paragraphs = pmc_client.extract_paragraphs(xml)
          except Exception:
              paragraphs = [xml]
      return paragraphs
docs: Extract paragraphs from xml that could be from  different sources
  
      First try to parse the xml as if it came from elsevier. if we do not
      have valid elsevier xml this will throw an exception. the text extraction
      function in the pmc client may not throw an exception when parsing elsevier
      xml, silently processing the xml incorrectly
  
      Parameters
      ----------
      xml : str
         Either an NLM xml, Elsevier xml or plaintext
  
      Returns
      -------
      paragraphs : str
          Extracted plaintext paragraphs from NLM or Elsevier XML