Ir para conteúdo
Fórum Script Brasil
  • 0

PHP + XML + Manipulação de Arquivo


Rafael Pasc.

Pergunta

Bom dia galera! Mais uma vez venho aqui pedir uma "mãozinha" à vocês!

Pois então, estou fazendo umas linhas de código aqui pra ler um arquivo XML e pegar linhas específicas do mesmo. Vou especificar mais.

Tenho um relatório gerado automaticamente em XML por um Software, e preciso de criar um PHP para filtrar somente os dados que eu quero ( Tendo em vista que o relatório tem mais de 9 mil linhas, e eu só vou precisar de umas 30 ). Eu consigo exibir esse XML em HTML com o PHP e também consigo validar alguns campos com IF ( Inclusive contar o numero de linhas do arquivo e etc ). Meu único problema é na hora de exibir a linha desejada... Pensei em usar um vetor, mas o vetor pega um CARACTER ao invés de uma linha inteira. Vou postar um exemplo do XML e o código aqui pra vocês logo abaixo.


<?php
$xml = simplexml_load_file("RELPC.xml"); // Aqui carrega o xml
echo "***Hardware INFO***\n";
//Aqui pega o Componente
foreach($xml->hardware->page as $page){
//Mostra o cabeçalho.
$cabeçalho = $page->attributes();
echo "<br><h3>".$cabeçalho."<br></h3>";
//Abre o XML como TXT para manipular linhas, ao invés de Tags.
$arqtxt= fopen("RELPC.xml","r");
$numlinhas=0;
$x=0;
//Fica em laço de repetição enquanto o arquivo não chega ao Fim.
while (!feof($arqtxt)){
//Enquanto o Vetor LINHA recebe dados, ele conta o número de linhas no arquivo XML.
if($linha = fgets($arqtxt,4096)){
$numlinhas++;
}
}
echo $numlinhas."<br>";
foreach($xml->hardware->page->item as $hardware){
foreach($hardware->attributes() as $key => $value)
{
//Exibe propriedades do componente.
echo "$key=>$value\n<br>";
if($value=="Disk Space"){
echo $linha[2];
}
$x++;
}
}
//Fecha o arquivo XML.
fclose($arqtxt);
echo "<p>";
}
?>
[/codebox]

Agora vem o exemplo de uma parte pequena do XML, mostrado em HTML pelo PHP acima.

[codebox]
System Info

9853
Property=>Serial Number
Value=>System Serial Number
Property=>Chassis
Value=>Desktop
Property=>Infrared (IR) Supported
Value=>No
Property=>Machine Type
Value=>AT/AT COMPATIBLE
Property=>UUID
Value=>03000200-0400-0500-0006-000700080009
Property=>Disk Space
olaroiValue=>Disk C: 1244 GB Available, 1397 GB Total, 1244 GB Free
Property=>Disk Space
olaroiValue=>Disk E: 0 MB Available, 31 MB Total, 0 MB Free
Property=>Disk Space
olaroiValue=>Disk F: 64 GB Available, 78 GB Total, 64 GB Free
Property=>Disk Space
olaroiValue=>Disk H: 51 GB Available, 70 GB Total, 51 GB Free
Property=>Physical Memory
Value=>2048 MB Total, 1228 MB Free
Property=>Memory Load
Value=>40%
Property=>Virtual Memory
Value=>3941 MB Total, 3131 MB Free
Property=>PageFile Name
Value=>\??\F:\pagefile.sys
Property=>PageFile Size
Value=>2046 MB
Property=>In use
Value=>96 MB
Property=>Max used
Value=>97 MB
Property=>Registry Size
Value=>2 MB (current), 120 MB (maximum)
Property=>Profile GUID
Value=>{6b16a440-6f35-11df-85d0-806d6172696f}
Property=>The system clock interval
Value=>15 ms

Sei que o valor da linha no XML não é o mesmo HTML acima, pois há quebras de linha no HTML. Eu preciso de avaliar a propriedade ( Se é hd, memória, etc...) e pegar a linha de baixo, onde estão as informações que eu necessito.

Valeu galera, espero uma respota!!!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...