Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Luciano Zanita

Isolar um texto em especifico no XML - Orientar XML com php

Recommended Posts

Olá pessoal, lá vem eu denovo com minhas perguntas, bom vamos lá, estou tendo um problema para orientar o XML para o local definido, não tenho ideia de onde começar nesse detalhe, consegui fazer um getElementsByTagName() para poder selecionar o XML que esta externamente.
O Seguinte código que estou usando é:

$xml_data=file_get_contents("http://IPDOSERVIDOR:8086/connectioncounts"); 
  $doc = new DOMDocument(); 
  $doc->loadXML($xml_data); 
  $wms = $doc->getElementsByTagName('Stream'); 

  $assistindo = $wms->item(0)->getElementsByTagName("SessionsFlash")->item(0)->nodeValue; 
  $passagemdepessoas = $wms->item(0)->getElementsByTagName("SessionsTotal")->item(0)->nodeValue;

O XML Externo deve imprimir um resultado igual a este:

 

 

 

<WowzaMediaServer>
<ConnectionsCurrent>2</ConnectionsCurrent>
<ConnectionsTotal>30</ConnectionsTotal>
<ConnectionsTotalAccepted>12</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>18</ConnectionsTotalRejected>
<MessagesInBytesRate>4399.0</MessagesInBytesRate>
<MessagesOutBytesRate>10.0</MessagesOutBytesRate>
<VHost>
<Name>_defaultVHost_</Name>
<TimeRunning>95085.291</TimeRunning>
<ConnectionsLimit>0</ConnectionsLimit>
<ConnectionsCurrent>2</ConnectionsCurrent>
<ConnectionsTotal>30</ConnectionsTotal>
<ConnectionsTotalAccepted>12</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>18</ConnectionsTotalRejected>
<MessagesInBytesRate>4399.0</MessagesInBytesRate>
<MessagesOutBytesRate>10.0</MessagesOutBytesRate>
<Application>
<Name>secundario</Name>
<Status>loaded</Status>
<TimeRunning>144.708</TimeRunning>
<ConnectionsCurrent>1</ConnectionsCurrent>
<ConnectionsTotal>3</ConnectionsTotal>
<ConnectionsTotalAccepted>1</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>2</ConnectionsTotalRejected>
<MessagesInBytesRate>7092.0</MessagesInBytesRate>
<MessagesOutBytesRate>0.0</MessagesOutBytesRate>
<ApplicationInstance>
<Name>_definst_</Name>
<TimeRunning>144.703</TimeRunning>
<ConnectionsCurrent>1</ConnectionsCurrent>
<ConnectionsTotal>3</ConnectionsTotal>
<ConnectionsTotalAccepted>1</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>2</ConnectionsTotalRejected>
<MessagesInBytesRate>7092.0</MessagesInBytesRate>
<MessagesOutBytesRate>0.0</MessagesOutBytesRate>
<Stream>
<Name>secundario.sdp</Name>
<SessionsFlash>0</SessionsFlash>
<SessionsCupertino>0</SessionsCupertino>
<SessionsSanJose>0</SessionsSanJose>
<SessionsSmooth>0</SessionsSmooth>
<SessionsRTSP>0</SessionsRTSP>
<SessionsTotal>0</SessionsTotal>
</Stream>

</ApplicationInstance>
</Application>
<Application>
<Name>primario</Name>
<Status>loaded</Status>
<TimeRunning>38.353</TimeRunning>
<ConnectionsCurrent>1</ConnectionsCurrent>
<ConnectionsTotal>3</ConnectionsTotal>
<ConnectionsTotalAccepted>1</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>2</ConnectionsTotalRejected>
<MessagesInBytesRate>274.0</MessagesInBytesRate>
<MessagesOutBytesRate>275.0</MessagesOutBytesRate>
<ApplicationInstance>
<Name>_definst_</Name>
<TimeRunning>38.351</TimeRunning>
<ConnectionsCurrent>1</ConnectionsCurrent>
<ConnectionsTotal>3</ConnectionsTotal>
<ConnectionsTotalAccepted>1</ConnectionsTotalAccepted>
<ConnectionsTotalRejected>2</ConnectionsTotalRejected>
<MessagesInBytesRate>274.0</MessagesInBytesRate>
<MessagesOutBytesRate>275.0</MessagesOutBytesRate>
<Stream>
<Name>primario.sdp</Name>
<SessionsFlash>0</SessionsFlash>
<SessionsCupertino>0</SessionsCupertino>
<SessionsSanJose>0</SessionsSanJose>
<SessionsSmooth>0</SessionsSmooth>
<SessionsRTSP>0</SessionsRTSP>
<SessionsTotal>0</SessionsTotal>
</Stream>

</ApplicationInstance>
</Application>
</VHost>
</WowzaMediaServer>

 

O que desejo pegar neste xml é o que esta em destaque em vermelho, só que tenho que pega-lo pelo <name> que vou especificar para orientar ele, para assim eu poder pegar o SessionsFlash que é o código que desejo, vale lembrar que ele sempre terá um ou mais resultados dentro da tag <stream> só preciso alguma forma que possa selecionar esta parte e isolar ele para poder pegar os dados.

Alguem sabe como posso estar orientando desta forma o XML?

Agradeço desde já a participação de todos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está no caminho certo.

Você precisa usar um loop para iterar sobre os elementos de $wms, verificando a tag <name> de cada um deles. Se for o name buscado, execute a busca, caso contrário, vai para a próxima iteração

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Beraldo, obrigado pelo feedback, acabei conseguindo, utilizando a tag Stream no TagName eu fiz um foreach e um if dentro para poder selecionar o que eu desejava e deu tudo certo, recebi uma ajudinha de um amigo que deu algumas dicas. :-D

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.