private function pAnfavea($cdata = '')
{
if ($cdata == '') {
return '';
}
//remove qualquer texto antes ou depois da tag CDATA
$cdata = str_replace('<![CDATA[', '<CDATA>', $cdata);
$cdata = str_replace(']]>', '</CDATA>', $cdata);
$cdata = preg_replace('/\\s\\s+/', ' ', $cdata);
$cdata = str_replace("> <", "><", $cdata);
$len = strlen($cdata);
$startPos = strpos($cdata, '<');
if ($startPos === false) {
return $cdata;
}
for ($x = $len; $x > 0; $x--) {
if (substr($cdata, $x, 1) == '>') {
$endPos = $x;
break;
}
}
if ($startPos > 0) {
$parte1 = substr($cdata, 0, $startPos);
} else {
$parte1 = '';
}
$parte2 = substr($cdata, $startPos, $endPos - $startPos + 1);
if ($endPos < $len) {
$parte3 = substr($cdata, $endPos + 1, $len - $endPos - 1);
} else {
$parte3 = '';
}
$texto = trim($parte1) . ' ' . trim($parte3);
if (strpos($parte2, '<CDATA>') === false) {
$cdata = '<CDATA>' . $parte2 . '</CDATA>';
} else {
$cdata = $parte2;
}
//carrega o xml CDATA em um objeto DOM
$dom = new DomDocumentNFePHP();
$dom->loadXML($cdata, LIBXML_NOBLANKS | LIBXML_NOEMPTYTAG);
//$xml = $dom->saveXML();
//grupo CDATA infADprod
$id = $dom->getElementsByTagName('id')->item(0);
$div = $dom->getElementsByTagName('div')->item(0);
$entg = $dom->getElementsByTagName('entg')->item(0);
$dest = $dom->getElementsByTagName('dest')->item(0);
$ctl = $dom->getElementsByTagName('ctl')->item(0);
$ref = $dom->getElementsByTagName('ref')->item(0);
if (isset($id)) {
if ($id->hasAttributes()) {
foreach ($id->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
if (isset($div)) {
if ($div->hasAttributes()) {
foreach ($div->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
if (isset($entg)) {
if ($entg->hasAttributes()) {
foreach ($entg->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
if (isset($dest)) {
if ($dest->hasAttributes()) {
foreach ($dest->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
if (isset($ctl)) {
if ($ctl->hasAttributes()) {
foreach ($ctl->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
if (isset($ref)) {
if ($ref->hasAttributes()) {
foreach ($ref->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
//grupo CADATA infCpl
$t = $dom->getElementsByTagName('transmissor')->item(0);
$r = $dom->getElementsByTagName('receptor')->item(0);
$versao = !empty($dom->getElementsByTagName('versao')->item(0)->nodeValue) ? 'Versao:' . $dom->getElementsByTagName('versao')->item(0)->nodeValue . ' ' : '';
$especieNF = !empty($dom->getElementsByTagName('especieNF')->item(0)->nodeValue) ? 'Especie:' . $dom->getElementsByTagName('especieNF')->item(0)->nodeValue . ' ' : '';
$fabEntrega = !empty($dom->getElementsByTagName('fabEntrega')->item(0)->nodeValue) ? 'Entrega:' . $dom->getElementsByTagName('fabEntrega')->item(0)->nodeValue . ' ' : '';
$dca = !empty($dom->getElementsByTagName('dca')->item(0)->nodeValue) ? 'dca:' . $dom->getElementsByTagName('dca')->item(0)->nodeValue . ' ' : '';
$texto .= "" . $versao . $especieNF . $fabEntrega . $dca;
if (isset($t)) {
if ($t->hasAttributes()) {
$texto .= " Transmissor ";
foreach ($t->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
if (isset($r)) {
if ($r->hasAttributes()) {
$texto .= " Receptor ";
foreach ($r->attributes as $attr) {
$name = $attr->nodeName;
$value = $attr->nodeValue;
$texto .= " {$name} : {$value}";
}
}
}
return $texto;
}