$xmlDados = new DOMDocument();
$xmlDados->loadXML($objDadosService->enviarDados());
$flagA = $xmlDados->getElementsByTagName( "node" );
foreach( $flagA as $flag )
{
$codigo = $flag->getElementsByTagName( "codigo" );
$codigo = $codigo->item(0)->nodeValue;
$data_cadastro = $flag->getElementsByTagName( "data_cadastro" );
$data_cadastro = $data_cadastro->item(0)->nodeValue;
$quarto = $flag->getElementsByTagName( "quarto" );
$quarto = $quarto->item(0)->nodeValue;
$cliente = $flag->getElementsByTagName( "cliente" );
$cliente = $cliente->item(0)->nodeValue;
echo "$codigo - $data_cadastro - $quarto - $cliente
";
}
?>uma boa solução para um xml pequeno, porém o XML que estou a analizar tem varias tag e essas tag podem ser diferentes então fiz a seguinte função:
Parametros:
$xmlDoc: objeto DomDocument, já com XML carregado.
$flag: node que se deseja ler e importar para um array
Retorno:
Um array com os valores daquele node.
function readXML($xmlDoc,$flag = "")
{
$nodeFlag = $xmlDoc->getElementsByTagName( $flag );
if ( $nodeFlag->length )
{
$arrFlag = array();
for ( $k = 0; $k < $nodeFlag->length; $k++)
{
$nodes = $nodeFlag->item(0)->getElementsByTagName( "*" );
for ( $i = 0; $i < $nodes->length; $i++ )
{
$arrFlag[$k][$nodes->item( $i )->nodeName] = $nodes->item( $i )->nodeValue;
}
}
return $arrFlag;
}
else
{
return false;
}
}
# Exemplo: #
$xmlDados = new DOMDocument();
$xmlDados->loadXML("
Fulano fulano@fulano.com.br
Cicrano cicrano@fulano.com.br
Beltrano beltrano@fulano.com.br
Teresa Português ");
$arrFlags = array();
$arrFlags = readXML($xmlDados,"alunos");
O resultado será um array com os dados dos alunos !
Nenhum comentário:
Postar um comentário