Peguei esse código, porém não funciona por nada pela minha capacidade que não é muita em PHP, já mudei ele de todas as formas possível e não funciona.
O código que usei...
<?php
if(!empty($_FILES['xml']['tmp_name'])){
$arquivo = new DomDocument();
$arquivo->load($_FILES['xml']['tmp_name']);
//var_dump($arquivo);
$linhas = $arquivo->getElementsByTagName("processo");
//var_dump($linhas);
$primeira_linha = true;
foreach($linhas as $linha){
if($primeira_linha == false){
// pegar o valor natureza="Produtos e/ou Serviço" no elemento <marca>
$nome = $linha->getElementsByTagName("nome")->item(0)->nodeValue;
echo "Nome: $nome <br>";
$email = $linha->getElementsByTagName("status")->item(1)->nodeValue;
echo "Status: $email <br>";
echo "<hr>";
}
$primeira_linha = false;
}
}
?>
O arquivo em XML é beemmm longo
<?xml version="1.0" encoding="UTF-8" ?>
<revista numero="2620" data="23/03/2021">
<processo numero="922151156" data-deposito="23/02/2021">
<despachos>
<despacho codigo="IPAS009" nome="Publicação de pedido de registro para oposição (exame formal concluído)"/>
</despachos>
<titulares>
<titular nome-razao-social="HERIK DE SOUZA ARAI" pais="BR" uf="RO"/>
</titulares>
<marca apresentacao="Mista" natureza="Produtos e/ou Serviço">
<nome>SOTEN</nome>
</marca>
<classes-vienna>
<classe-vienna codigo="27.5.1" edicao="4"/>
<classe-vienna codigo="28.3" edicao="4"/>
<classe-vienna codigo="26.2.7" edicao="4"/>
<classe-vienna codigo="29.1.15" edicao="4"/>
</classes-vienna>
<lista-classe-nice>
<classe-nice codigo="41">
<especificacao>Agente artístico; literário e cultural [promotor de evento]; </especificacao>
<status>Pendente</status>
</classe-nice>
</lista-classe-nice>
<procurador>TENAX SERVIÇOS DE CONSULTORIA EM PROPRIEDADE INTELECTUAL LTDA - ME</procurador>
</processo>
<processo numero="920178898">
<despachos>
<despacho codigo="IPAS029" nome="Deferimento do pedido"/>
</despachos>
<titulares>
<titular nome-razao-social="DEIVISSON HIGOR DE OLIVEIRA MORATO" pais="BR" uf="AL"/>
</titulares>
<lista-classe-nice>
<classe-nice codigo="25">
<especificacao>Bandanas;Bermudas;Boné;Calças compridas; *; </especificacao>
<status>Deferida</status>
</classe-nice>
</lista-classe-nice>
</processo>
Os valores que estou tentando pegar são <nome> <status>. Mas também queria tentar pegar os valores nome-razao-social="..." e natureza. Penso que pode ter algo a ver com o tamanho do arquivo que é um pouco maior do que o habitual, girando em torno de 30 MB e no total vão ter que tirar as informações 22 109 que é o número de vezes que esse modelo de exemplo se repete no documento (Mas como disse não sei muito sobre PHP é uma suposição)...