protected function ProjectVersionClient::parseXml in Acquia Content Hub 8.2
Parses XML from D.O and get latest versions of security covered releases.
Parameters
string $xml_data: XML Data.
string $drupal_version: Drupal major version installed.
Return value
string[] Array of versions of security covered releases for a given project.
1 call to ProjectVersionClient::parseXml()
- ProjectVersionClient::getReleaseData in src/Client/ ProjectVersionClient.php 
- Helper method to get latest release versions for a given d.o project.
File
- src/Client/ ProjectVersionClient.php, line 111 
Class
- ProjectVersionClient
- Project version client to get latest releases for a project from D.O.
Namespace
Drupal\acquia_contenthub\ClientCode
protected function parseXml(string $xml_data, string $drupal_version = '') : array {
  $versions = [];
  try {
    $xml = new \SimpleXMLElement($xml_data);
  } catch (\Exception $e) {
    return [];
  }
  if (!isset($xml->short_name) || !isset($xml->releases)) {
    return [];
  }
  // Break out the loop after the first valid security release.
  foreach ($xml->releases
    ->children() as $release) {
    $version = (string) $release->version;
    $major_version = $version[0];
    $security_covered = $this
      ->isSecurityCoveredRelease($release);
    if (!$security_covered) {
      continue;
    }
    if ($this
      ->isLatestVersion($drupal_version, $major_version)) {
      $versions['latest'] = $version;
      return $versions;
    }
    if (!isset($versions['also_available']) && $drupal_version === '8' && $major_version === '9') {
      $versions['also_available'] = $version;
    }
  }
  return $versions;
}