A RPI está iniciando nesta terça feira dia 05/06/2018 na RPI 2464 a disponibilizar o formato XML.
A previsão é que a partir de 2019 seja disponibilizado apenas o formato XML
http://www.inpi.gov.br/comunicados/arquivos-no-formato-txt-passarao-para-xml-na-rpi
A seguir eu disponibilizo um código em PHP que desenvolvi para converter o arquivo XML atual em TXT, desta maneira você pode recuperar a RPI em TXT e continuar usando seus sistemas sem qualquer necessidade de reprogramar o código de leitura da revista.
$fname="P$rpi.TXT";
@$fp = fopen($fname,"w");
if (!$fp)
{
echo "Não foi identificado o arquivo texto $fname";
exit();
}
$data2 = substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4);
$msg = "No $rpi de $data2";
echo "$msg<BR>";
fputs($fp,$msg."\n");
$saveFileName = "revistas/Patente_$rpi.xml";
$data2 = substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4);
$myprocessos= array();
$filename = $saveFileName;
if(file_exists($filename)) {
$doc = new DOMDocument('1.0', 'utf-8');
$xmlfile = file_get_contents($filename);
$doc->loadXML($xmlfile);
$xpath = new DOMXPath($doc);
$n = 0;
$entry = $xpath->query("//revista/despacho");
foreach($entry as $ent){
$n++;
//fputs($fp,"\n");
foreach($ent->childNodes as $nodename_main)
{
if($nodename_main->nodeName=='codigo')
{
$inid = 'Cd';
$codigo_main = utf8_decode(trim($nodename_main->nodeValue));
if ($codigo_main>=100 and $codigo_main<=140) $codigo_main = 'PR - Recursos';
if ($codigo_main>=200 and $codigo_main<=218) $codigo_main = 'PR - Nulidades';
$myprocessos[$n][$inid]=$codigo_main;
if ($codigo_main=='PR - Recursos' or $codigo_main=='PR - Nulidades') $myprocessos[$n]['Di']='DIRPA';
}
if($nodename_main->nodeName=='processo-patente')
{
foreach($nodename_main->childNodes as $nodename)
{
if($nodename->nodeName=='numero')
{
//$inid = 11;
$inid = $nodename->getAttribute('inid');
$numero = trim($nodename->nodeValue);
$kindcode = $nodename->getAttribute('kindcode');
$myprocessos[$n][$inid]=$numero.' '.$kindcode;
}
if($nodename->nodeName=='data-deposito')
{
//$inid = 22;
$inid = $nodename->getAttribute('inid');
$data_deposito = trim($nodename->nodeValue);
//$data_deposito = substr($data_deposito,8,2).'/'.substr($data_deposito,5,2).'/'.substr($data_deposito,0,4);
$myprocessos[$n][$inid]=$data_deposito;
}
if($nodename->nodeName=='concessao')
{
//$inid = 45;
$inid = $nodename->getAttribute('inid');
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='data')
{
$concessao = trim($subNodes->nodeValue);
//$concessao = substr($concessao,8,2).'/'.substr($concessao,5,2).'/'.substr($concessao,0,4);
$myprocessos[$n][$inid]=$concessao;
}
}
}
if($nodename->nodeName=='publicacao-nacional')
{
//$inid = 44;
$inid = $nodename->getAttribute('inid');
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='data-rpi')
{
$data_rpi = trim($subNodes->nodeValue);
//$data_rpi = substr($data_rpi,8,2).'/'.substr($data_rpi,5,2).'/'.substr($data_rpi,0,4);
$myprocessos[$n][$inid]=$data_rpi;
}
}
}
if($nodename->nodeName=='pedido-principal')
{
//$inid = 61;
$inid = $nodename->getAttribute('inid');
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='numero')
{
$numero = trim($subNodes->nodeValue);
}
if($subNodes->nodeName=='data-deposito')
{
$data_deposito = trim($subNodes->nodeValue);
//$data_deposito = substr($data_deposito,8,2).'/'.substr($data_deposito,5,2).'/'.substr($data_deposito,0,4);
}
$myprocessos[$n][$inid]=$numero.' '.$data_deposito;
}
}
if($nodename->nodeName=='data-fase-nacional')
{
//$inid = 85;
$inid = $nodename->getAttribute('inid');
$data = trim($nodename->nodeValue);
//$data = substr($data,8,2).'/'.substr($data,5,2).'/'.substr($data,0,4);
$myprocessos[$n][$inid]=$data;
}
if($nodename->nodeName=='pedido-internacional')
{
//$inid = 86;
$inid = $nodename->getAttribute('inid');
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='numero-pct')
{
$numero_pct = trim($subNodes->nodeValue);
}
if($subNodes->nodeName=='data-pct')
{
$data_pct = trim($subNodes->nodeValue);
//$data_pct = substr($data_pct,8,2).'/'.substr($data_pct,5,2).'/'.substr($data_pct,0,4);
}
$myprocessos[$n][$inid]="$numero_pct de $data_pct";
}
}
if($nodename->nodeName=='publicacao-internacional')
{
//$inid = 87;
$inid = $nodename->getAttribute('inid');
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='numero-ompi')
{
$numero_ompi = trim($subNodes->nodeValue);
}
if($subNodes->nodeName=='data-ompi')
{
$data_ompi = trim($subNodes->nodeValue);
//$data_ompi = substr($data_ompi,8,2).'/'.substr($data_ompi,5,2).'/'.substr($data_ompi,0,4);
}
$myprocessos[$n][$inid]="$numero_ompi de $data_ompi";
}
}
if($nodename->nodeName=='resumo')
{
//$inid = 57;
$inid = $nodename->getAttribute('inid');
$resumo = utf8_decode(trim($nodename->nodeValue));
$myprocessos[$n][$inid]=$resumo;
}
if($nodename->nodeName=='classificacao-internacional-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='classificacao-internacional')
{
//$inid = 51;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
$ano = $subNodes->getAttribute('ano');
$codigo_subNodes = trim($subNodes->nodeValue);
if ($i++==0)
$myprocessos[$n][$inid]=$codigo_subNodes." "."($ano)";
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].", ".$codigo_subNodes.' '."($ano)";
}
}
}
//if($nodename->nodeName=='classificacao-CPC-lista')
if($nodename->nodeName=='classificacao-nacional-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
//if($subNodes->nodeName=='classificacao-CPC')
if($subNodes->nodeName=='classificacao-nacional')
{
//$inid = 52;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
$classificacao_cpc = trim($subNodes->nodeValue);
if ($i++==0)
$myprocessos[$n][$inid]=$classificacao_cpc;
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].' , '.$classificacao_cpc;
}
}
}
if($nodename->nodeName=='prioridade-unionista-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='prioridade-unionista')
{
//$inid = 30;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
foreach($subNodes->childNodes as $subNodes2)
{
if($subNodes2->nodeName=='sigla-pais')
{
$sigla_pais = trim($subNodes2->nodeValue);
}
if($subNodes2->nodeName=='numero-prioridade')
{
$numero_prioridade = trim($subNodes2->nodeValue);
}
if($subNodes2->nodeName=='data-prioridade')
{
$data_prioridade = trim($subNodes2->nodeValue);
//$data_prioridade = substr($data_prioridade,8,2).'/'.substr($data_prioridade,5,2).'/'.substr($data_prioridade,0,4);
}
}
if ($i++==0)
$myprocessos[$n][$inid]=$data_prioridade.' '.$sigla_pais.' '.$numero_prioridade;
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].'; '.$data_prioridade.' '.$sigla_pais.' '.$numero_prioridade;
}
}
}
if($nodename->nodeName=='prioridade-interna-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='prioridade-interna')
{
//$inid = 66;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
foreach($subNodes->childNodes as $subNodes2)
{
if($subNodes2->nodeName=='data-prioridade')
{
$data_prioridade = trim($subNodes2->nodeValue);
//$data_prioridade = substr($data_prioridade,8,2).'/'.substr($data_prioridade,5,2).'/'.substr($data_prioridade,0,4);
}
if($subNodes2->nodeName=='numero-prioridade')
{
$numero_prioridade = trim($subNodes2->nodeValue);
}
}
if ($i++==0)
$myprocessos[$n][$inid]="$numero_prioridade $data_prioridade";
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].'; '."$numero_prioridade $data_prioridade";
}
}
}
if($nodename->nodeName=='divisao-pedido')
{
//$inid = 62;
$inid = $nodename->getAttribute('inid');
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='numero')
{
$numero = trim($subNodes->nodeValue);
}
if($subNodes->nodeName=='data-deposito')
{
$data_deposito = trim($subNodes->nodeValue);
//$data_deposito = substr($data_deposito,8,2).'/'.substr($data_deposito,5,2).'/'.substr($data_deposito,0,4);
}
$myprocessos[$n][$inid]=$numero.' '.$data_deposito;
}
}
if($nodename->nodeName=='titulo')
{
//$inid = 54;
$inid = $nodename->getAttribute('inid');
$titulo = utf8_decode(trim($nodename->nodeValue));
$myprocessos[$n][$inid]=$titulo;
}
if($nodename->nodeName=='titular-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='titular')
{
//$inid = 71;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
foreach($subNodes->childNodes as $subNodes2)
{
if($subNodes2->nodeName=='nome-completo')
{
$nome_completo = utf8_decode(trim($subNodes2->nodeValue));
}
$uf='';
if($subNodes2->nodeName=='endereco')
{
foreach($subNodes2->childNodes as $subNodes3)
{
if($subNodes3->nodeName=='uf')
{
$uf = '/'.trim($subNodes3->nodeValue);
}
if($subNodes3->nodeName=='pais')
{
$siglaPais = trim($subNodes3->nodeValue);
}
}
if ($i++==0)
$myprocessos[$n][$inid]=trim($nome_completo." "."($siglaPais$uf)");
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].", ".trim($nome_completo.' '."($siglaPais$uf)");
}
}
}
}
}
if($nodename->nodeName=='inventor-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='inventor')
{
//$inid = 72;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
foreach($subNodes->childNodes as $subNodes2)
{
if($subNodes2->nodeName=='nome-completo')
{
$nome_completo = utf8_decode(trim($subNodes2->nodeValue));
}
}
if ($i++==0)
$myprocessos[$n][$inid]=$nome_completo;
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].'; '.$nome_completo;
}
}
}
if($nodename->nodeName=='procurador-lista')
{
$i=0;
foreach($nodename->childNodes as $subNodes)
{
if($subNodes->nodeName=='procurador')
{
//$inid = 74;
$inid = $subNodes->getAttribute('inid');
$sequencia = $subNodes->getAttribute('sequencia');
foreach($subNodes->childNodes as $subNodes2)
{
if($subNodes2->nodeName=='nome-completo')
{
$nome_completo = utf8_decode(trim($subNodes2->nodeValue));
}
}
if ($i++==0)
$myprocessos[$n][$inid]=$nome_completo;
else
$myprocessos[$n][$inid]=$myprocessos[$n][$inid].', '.$nome_completo;
}
}
}
}
}
if($nodename_main->nodeName=='comentario')
{
//$inid = 'Co';
$inid = $nodename_main->getAttribute('inid');
$comentario = utf8_decode(trim($nodename_main->nodeValue));
$myprocessos[$n][$inid]=$comentario;
//$myprocessos[$n]['De']=$decisao;
}
if($nodename_main->nodeName=='titulo')
{
$inid = 'De';
$decisao = utf8_decode(trim($nodename_main->nodeValue));
//$myprocessos[$n][$inid]=$decisao;
}
}
//print_r($myprocessos[$n]);
ksort($myprocessos[$n]);
$msg_ultimo = '';
foreach ($myprocessos[$n] as $key=>$value)
{
$msg = "($key) $value";
if ($key=='co' or $key=='De')
$msg_ultimo = $msg;
else
{
echo "$msg<BR>";
fputs($fp,$msg."\n");
}
}
if ($msg_ultimo<>'')
{
echo "$msg_ultimo<BR>";
fputs($fp,$msg_ultimo."\n");
}
echo "<BR><BR><BR>";
}
}
fclose($fp);
echo "Fim de processamento";
exit();
Nenhum comentário:
Postar um comentário