private function zTestaChaveXML($dom)
{
$infNFe = $dom->getElementsByTagName("infNFe")->item(0);
$ide = $dom->getElementsByTagName("ide")->item(0);
$emit = $dom->getElementsByTagName("emit")->item(0);
$cUF = $ide->getElementsByTagName('cUF')->item(0)->nodeValue;
$dhEmi = $ide->getElementsByTagName('dhEmi')->item(0)->nodeValue;
$cnpj = $emit->getElementsByTagName('CNPJ')->item(0)->nodeValue;
$mod = $ide->getElementsByTagName('mod')->item(0)->nodeValue;
$serie = $ide->getElementsByTagName('serie')->item(0)->nodeValue;
$nNF = $ide->getElementsByTagName('nNF')->item(0)->nodeValue;
$tpEmis = $ide->getElementsByTagName('tpEmis')->item(0)->nodeValue;
$cNF = $ide->getElementsByTagName('cNF')->item(0)->nodeValue;
$chave = str_replace('NFe', '', $infNFe->getAttribute("Id"));
$tempData = explode("-", $dhEmi);
$chaveMontada = $this->montaChave($cUF, $tempData[0] - 2000, $tempData[1], $cnpj, $mod, $serie, $nNF, $tpEmis, $cNF);
//caso a chave contida na NFe esteja errada
//substituir a chave
if ($chaveMontada != $chave) {
$ide->getElementsByTagName('cDV')->item(0)->nodeValue = substr($chaveMontada, -1);
$infNFe = $dom->getElementsByTagName("infNFe")->item(0);
$infNFe->setAttribute("Id", "NFe" . $chaveMontada);
$this->chNFe = $chaveMontada;
}
}