Como ler o XML com o xpath (PHP)

Olá pessoal tudo bem?

Tenho um arquivo XML, que preciso importar e salvar os dados no banco MySql, porém estou com dificuldades de puxar os dados, gostaria de saber se alguém pode me ajudar?

segue a minha estrutura XML.: arquivo.xml

utilizei o xpath que ajuda a buscar dados definindo o que eu quero.

<?php $xml = simplexml_load_file("arquivo.xml"); $selecionar = $xml->xpath('/LISTA/DADOS/INF/@ID'); foreach ($selecionar as $dados) echo $dados; ?>

o resultado é :
nome
end
email

o que eu quero é os Valores e armazenar nas variáveis, alguém ja fez leitura de xml deste tipo, obrigado

Seu xml não apareceu corretamente, tente usar os 4 espaços (tag code) para mostrar o código…

obrigado por avisar

A busca que você fez no xpath foi justamente para trazer o id de cada elemento inf, nesse caso, melhor trocar por

$selecionar = $xml->xpath('/LISTA/DADOS/INF/@VALUE');

Porém dessa forma você não consegue trazer o nó (elemento inf) por completo, apenas o valor de cada um num array…

Mais sobre xpath…

https://www.w3schools.com/xml/xml_xpath.asp

entendi LostSoldier, neste caso eu tenho que apontar para um array e passar como parametros os valores para armazenar o que eu quero.

a minha idéia era pegar uma por uma para que eu possa armazenar numa variável e gravar o que eu quero.
por exemplo da busca só armazenar o nome e o e-mail, mas tranquilo colega obrigado pela dica ajudou muito.

Na verdade não é bem apontar para um array, porque esse é o comportamento padrão do método xpath, ele traz um array pra você e em cada posição o resultado da pesquisa… tanto que você consegue colocá-lo num foreach…

Segue outra forma de manipular a api SimpleXML

https://www.w3schools.com/php/php_xml_simplexml_get.asp

As vezes o nome das variáveis deixa o código mais intuitivo, por exemplo:

<?php
$xml = simplexml_load_file("arquivo.xml");
$valores = $xml->xpath('/LISTA/DADOS/INF/@VALUE');
foreach ($valores as $valor)
    echo $valor;

?>

Com isso você já obteve uma lista de valores encontrados e para cada iteração do foreach um valor é automaticamente colocado na variável $valor…

Se quiser fazer uma pesquisa de ID’s por exemplo…

$ids = $xml->xpath('/LISTA/DADOS/INF/@ID');

E assim por diante…