NFePHP\NFe\ToolsNFe::validarXml PHP Method

validarXml() public method

validarXml Valida qualquer xml do sistema NFe com seu xsd NOTA: caso não exista um arquivo xsd apropriado retorna false
public validarXml ( string $xml = '' ) : boolean
$xml string path ou conteudo do xml
return boolean
    public function validarXml($xml = '')
    {
        $aResp = array();
        $schem = IdentifyNFe::identificar($xml, $aResp);
        if ($schem == '') {
            return true;
        }
        $xsdFile = $aResp['Id'] . '_v' . $aResp['versao'] . '.xsd';
        $xsdPath = NFEPHP_ROOT . DIRECTORY_SEPARATOR . 'schemes' . DIRECTORY_SEPARATOR . 'NFe' . DIRECTORY_SEPARATOR . $this->aConfig['schemesNFe'] . DIRECTORY_SEPARATOR . $xsdFile;
        if (!is_file($xsdPath)) {
            $this->errors[] = "O arquivo XSD {$xsdFile} não foi localizado.";
            return false;
        }
        if (!ValidXsd::validar($aResp['xml'], $xsdPath)) {
            $this->errors[] = ValidXsd::$errors;
            return false;
        }
        return true;
    }

Usage Example

$infCpl = 'Trib aprox R$: 2,09 Federal e R$: 1,20 Estadual Fonte: IBPT 5oi7eW 15.2.A.';
//tag infAdic
$resp = $nfe->taginfAdic($infAdFisco, $infCpl);
//monta a NFe e retorna na tela
$resp = $nfe->montaNFe();
if ($resp) {
    $xml = $nfe->getXML();
    $filename = "/var/www/nfe/homologacao/entradas/{$chave}-nfe.xml";
    file_put_contents($filename, $xml);
    chmod($filename, 0777);
    //assina
    $xml = $tools->assina($xml);
    $filename = "/var/www/nfe/homologacao/assinadas/{$chave}-nfe.xml";
    file_put_contents($filename, $xml);
    chmod($filename, 0777);
    if (!$tools->validarXml($xml)) {
        echo 'Eita !?! Tem bicho na linha .... <br>';
        foreach ($tools->errors as $erro) {
            foreach ($erro as $err) {
                echo "{$err} <br>";
            }
        }
    } else {
        header('Content-type: text/xml; charset=UTF-8');
        echo $xml;
    }
} else {
    header('Content-type: text/html; charset=UTF-8');
    foreach ($nfe->erros as $err) {
        echo 'tag: &lt;' . $err['tag'] . '&gt; ---- ' . $err['desc'] . '<br>';
    }
All Usage Examples Of NFePHP\NFe\ToolsNFe::validarXml