protected function processReport($xmlString)
    {
        $xml = simplexml_load_string($xmlString);

        if ($xml === false) {
            $this->phpci->log($xmlString);
            throw new \Exception(Lang::get('could_not_process_report'));
        }

        $warnings = 0;
        foreach ($xml->duplication as $duplication) {
            foreach ($duplication->file as $file) {
                $fileName = (string)$file['path'];
                $fileName = str_replace($this->phpci->buildPath, '', $fileName);

                $message = <<<CPD
Copy and paste detected:

```
{$duplication->codefragment}
```
CPD;

                $this->build->reportError(
                    $this->phpci,
                    'php_cpd',
                    $message,
                    BuildError::SEVERITY_NORMAL,
                    $fileName,
                    $file['line'],
                    (int) $file['line'] + (int) $duplication['lines']
                );
            }

            $warnings++;
        }

        return $warnings;
    }
protected function processReport($xmlString)
    {
        $xml = simplexml_load_string($xmlString);

        if ($xml === false) {
            $this->phpci->log($xmlString);
            throw new \Exception(Lang::get('could_not_process_report'));
        }

        $warnings = 0;
        foreach ($xml->duplication as $duplication) {
            foreach ($duplication->file as $file) {
                $fileName = (string)$file['path'];
                $fileName = str_replace($this->phpci->buildPath, '', $fileName);

                $message = <<<CPD
Copy and paste detected:

```
{$duplication->codefragment}
```
CPD;

                $this->build->reportError(
                    $this->phpci,
                    'php_cpd',
                    $message,
                    BuildError::SEVERITY_NORMAL,
                    $fileName,
                    $file['line'],
                    (int) $file['line'] + (int) $duplication['lines']
                );
            }

            $warnings++;
        }

        return $warnings;
    }
protected function processReport ( $ xmlString ) { $ xml = simplexml_load_string ( $ xmlString ) ; if ( $ xml === false ) { $ this -> phpci -> log ( $ xmlString ) ; throw new \ Exception ( Lang :: get ( 'could_not_process_report' ) ) ; } $ warnings = 0 ; foreach ( $ xml -> duplication as $ duplication ) { foreach ( $ duplication -> file as $ file ) { $ fileName = ( string ) $ file [ 'path' ] ; $ fileName = str_replace ( $ this -> phpci -> buildPath , '' , $ fileName ) ; $ message =  <<<CPD
Copy and paste detected:

```
{$duplication->codefragment}
```
CPD ; $ this -> build -> reportError ( $ this -> phpci , 'php_cpd' , $ message , BuildError :: SEVERITY_NORMAL , $ fileName , $ file [ 'line' ] , ( int ) $ file [ 'line' ] + ( int ) $ duplication [ 'lines' ] ) ; } $ warnings ++ ; } return $ warnings ; }
Process the PHPCPD XML report.
@param $xmlString
@return array
@throws \Exception
Process the PHPCPD XML report .