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

(Resolvido) Leitura XML com filtragem


Marcos Chopps

Pergunta

Seguinte pessoal.

Tenho que ler um XML, fazendo uma filtragem simples só por uma das tags dele e listar tudo que tiver la dentro.

<?xml version="1.0" encoding="ISO-8859-1" ?>

<rss version="2.0">
  <channel>
    <title><![CDATA[Multiplicadores TUSS]]></title>
    <link>http://intranet.amil.com.br</link>
    <description><![CDATA[]]></description>
    <language>pt-br</language>
    <filial>
        <title><![CDATA[Brasília]]></title>
        <UF><![CDATA[DF]]></UF>
        <description><![CDATA[]]></description>
        <colaborador>
            <nome><![CDATA[Alessandra]]></nome>        
            <imgThumb>Alessandra-Ferreira-Araujo---Dimed---ConsultoriosDF.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / Consultórios]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Amanda]]></nome>        
            <imgThumb>Amanda-Faria-Alcantara----CliDF.jpg</imgThumb>
            <diretoria><![CDATA[CLI]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Ana]]></nome>        
            <imgThumb>ANA-MARGARIDA-CAVALCANTI-PEDRA-DIMED_SADT-DF.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / SADT]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Andrea]]></nome>        
            <imgThumb>Andrea-Maria-Lemos---DimedDF.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Christiane]]></nome>        
            <imgThumb>Christiane-Gabriela-Macedo-Azevedo---Dimed---HospitaisDF.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / Hospitais]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Flávia]]></nome>        
            <imgThumb>Flavia-Cassia-Rotatori-Alvim---CliDF.jpg</imgThumb>
            <diretoria><![CDATA[CLI]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Geane]]></nome>        
            <imgThumb>Geane-Aurea-Ferreira-de-Almeida---Contas-MedicasDF.jpg</imgThumb>
            <diretoria><![CDATA[Contas Medicas]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Lea]]></nome>        
            <imgThumb>Lea-Maria-de-A.-Nascimento----Dimed---ConsultoriosDF.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / Consultórios]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Lucilene]]></nome>        
            <imgThumb>Lucilene-Pereira-Jacobina---ReembolsoDF.jpg</imgThumb>
            <diretoria><![CDATA[Reembolso]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Rodrigo]]></nome>        
            <imgThumb>Rodrigo-Lima-e-Silva---Dimed---SadtDF.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / SADT]]></diretoria>
        </colaborador>
    </filial>
    
    
    
    <filial>
        <title><![CDATA[Paraná]]></title>
        <UF><![CDATA[PR]]></UF>
        <description><![CDATA[]]></description>
        <colaborador>
            <nome><![CDATA[Gerson]]></nome>        
            <imgThumb>Gerson-Righetto-Junior---DimedPR.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Hellenn]]></nome>        
            <imgThumb>Hellenn-Rosy-Stadler-Dalan---Dimed-HospitaisPR.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / Hospitais]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Jaqueline]]></nome>        
            <imgThumb>Jaqueline-Magaton---Gerencia-de-BeneficiosPR.jpg</imgThumb>
            <diretoria><![CDATA[Gerencia de Benefícios]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Luiz]]></nome>        
            <imgThumb>Luiz-Eduardo-Formaggi-Marijetic---Dimed-AmilPR.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
    </filial>


    <filial>
        <title><![CDATA[Rio de Janeiro]]></title>
        <UF><![CDATA[RJ]]></UF>
        <description><![CDATA[]]></description>
        <colaborador>
            <nome><![CDATA[Hermínio]]></nome>        
            <imgThumb>Herminio-Jose-Leitao-Mendes---DitecRJ.jpg</imgThumb>
            <diretoria><![CDATA[Ditec]]></diretoria>
        </colaborador>
    </filial>


    <filial>
        <title><![CDATA[São Paulo]]></title>
        <UF><![CDATA[SP]]></UF>
        <description><![CDATA[]]></description>
        <colaborador>
            <nome><![CDATA[Ana Paula Zurita]]></nome>        
            <imgThumb>Ana-Paula-de-Oliveira-Zurita---GIH-DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / GIH]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Ana Paula Frank]]></nome>        
            <imgThumb>Ana-Paula-Frank---Supervisao---DiratSP.jpg</imgThumb>
            <diretoria><![CDATA[Dirat]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Andrea Coelho]]></nome>        
            <imgThumb>Andrea-Coelho-Barbosa---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Andrea Vulcanis]]></nome>        
            <imgThumb>Andrea-Vulcanis---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Andrea Eocadio]]></nome>        
            <imgThumb>Andreia-Eocadio---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Antonio Giriboni]]></nome>        
            <imgThumb>Antonio-Eduardo-Giriboni-Monteiro---ResgateSP.jpg</imgThumb>
            <diretoria><![CDATA[Resgate]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Arlete]]></nome>        
            <imgThumb>Arlete-Jean-Abdo-Pereira---Nutrologia-HPSP.jpg</imgThumb>
            <diretoria><![CDATA[Hosp. Paulistano]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Carla]]></nome>        
            <imgThumb>Carla-Nascimento-Aro---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Carmem]]></nome>        
            <imgThumb>Carmem-Herrero-F-Da-Silva---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Célia]]></nome>        
            <imgThumb>Celia-Del-Carmen-Oliva-Avila---Supervisao---DiratSP.jpg</imgThumb>
            <diretoria><![CDATA[Dirat]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Cristiani]]></nome>        
            <imgThumb>Cristiani-Bragantini---Supervisao---DiratSP.jpg</imgThumb>
            <diretoria><![CDATA[Dirat]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Cristiano]]></nome>        
            <imgThumb>Cristiano-Rodrigo-de-Alvarenga-Nascimento---MedialSP.jpg</imgThumb>
            <diretoria><![CDATA[Medial]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Daise]]></nome>        
            <imgThumb>Daise-Cristine-Sendon-Potier---Supervisao-DiratSP.jpg</imgThumb>
            <diretoria><![CDATA[Dirat]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Dorothea]]></nome>        
            <imgThumb>Dorothea-Spring---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Elma]]></nome>        
            <imgThumb>Elma-VegaBexiga-GHI_Dimed-SP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed / GIH]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Fábia]]></nome>        
            <imgThumb>Fabia-Franca-Teixeira---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Fábio]]></nome>        
            <imgThumb>Fabio-Belizario-de-Oliveira---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Isac]]></nome>        
            <imgThumb>Isac-Eiji-Ito---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Jair]]></nome>        
            <imgThumb>Jair-Santos-de-Oliveira---Home-CareSP.jpg</imgThumb>
            <diretoria><![CDATA[Home Care]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Juliana]]></nome>        
            <imgThumb>Juliana-Overbeck-Mendonca---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Leandro]]></nome>        
            <imgThumb>Leandro-Vaz-Figueira---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Lucio]]></nome>        
            <imgThumb>Lucio-Antonio-Pereira-Gomes---MedialSP.jpg</imgThumb>
            <diretoria><![CDATA[Medial]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Myrna]]></nome>        
            <imgThumb>Myrna-Monteiro---MedialSP.jpg</imgThumb>
            <diretoria><![CDATA[Medial]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Nella]]></nome>        
            <imgThumb>Nella-Annunziatta-Franca-Magosso---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Nely]]></nome>        
            <imgThumb>Nely-Yoko-Tatai---GIH-DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Sani]]></nome>        
            <imgThumb>Sani-Elisa-Martin---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Silvia]]></nome>        
            <imgThumb>Silvia-Garcia-Cesar---Agencia-Atendimento---SantosSP.jpg</imgThumb>
            <diretoria><![CDATA[Dirat]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Tiago]]></nome>        
            <imgThumb>Tiago-Ferreira---Analise-Gerencial-DixSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Wilson]]></nome>        
            <imgThumb>Wilson-Roberto-Casale---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        <colaborador>
            <nome><![CDATA[Zoraide]]></nome>        
            <imgThumb>Zoraide-Cardoso-Silva---DimedSP.jpg</imgThumb>
            <diretoria><![CDATA[Dimed]]></diretoria>
        </colaborador>
        

    </filial>

  </channel>
</rss>
Não estou conseguindo, já procurei no w3c alguns exemplos de como fazer a leitura, mas minha duvida esta em como fazer a filtragem. Vou selecionar um Estado, então eu entro na tag filial, e procuro qual a tag UF dele, se for igual ao estado informado eu tenho que recuperar cada um dos dados da tag colaborador. Aparentemente é algo simples, mas eu não tenho realmente a menor ideia de como fazer. Estava fazendo o seguinte:
set registro = objXMLDoc.getElementsByTagName("filial")
set col = objXMLDoc.getElementsByTagName("filial/colaborador")

for i=0 to registro.length - 1
Response.Write(registro.item(i).text)
vtitulo = registro.item(i).selectSingleNode("./UF").text
    if vtitulo = varFilial then
        vnome = col.item(i).selectSingleNode("./nome").text
        vimg = col.item(i).selectSingleNode("./imgThumb").text
        vdiretoria = col.item(i).selectSingleNode("./diretoria").text
        response.write("<br>" & vnome)
        response.write("<br>" & vimg)
        response.write("<br>" & vdiretoria)
        for a=0 to vnome.length - 1
            nome        = vtitulo.item(i).selectSingleNode("./colaborador/nome").text
            img            = vtitulo.item(i).selectSingleNode("./colaborador/imgThumb").text
            diretoria    = vtitulo.item(i).selectSingleNode("./colaborador/diretoria").text
            response.write "nome: " & nome & "<BR><BR>"
            response.write "img: " & img & "<BR><BR>"
            response.write "diretoria: " & diretoria & "<BR><BR>"
        next
    end if
next

Editado por bareta
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Resolvi

<% 
Session.LCID = 1046
varFilial = Request.QueryString("filial")
Session("tituloPagina") = "Multiplicadores TUSS - " &  varFilial
Session("breadcrumb") = ""
Session("aba")             = "3"

%>

<!--#include file="inc/header.aspx" -->

<script language="JavaScript">
    function loadCurriculo(id1,id2,id3){
        alert(id1 + '/' + id2 + '/' + id3);
    }
</script>

<div id="campanhasPublicitarias">
    <div style="color: black; font-size: 80%; padding: 15px 0 0 20px; float: left; background-repeat: no-repeat; height: 500px; width: 100px; background-image: url('/adIntranetv3Amil/images/home2008/bgLinhaTempo.jpg')">
    <% filiais = "SP,DF,PR,RJ" %>
    <% arrayFilial = Split(filiais,",") %>
    <select onChange="location.href='tuss_multiplicadores.asp?filial=' + this.value + '&Data=<%=varData%>'">
    <% For a = 0 to UBound(arrayFilial) %>
    <option <% if arrayFilial(a) = varFilial then response.write "selected"%> value="<%=arrayFilial(a)%>"><%=arrayFilial(a)%>
    <% Next %>
    </select>
    
    </div>
    <div style="float: left; width: 400px">
        <div id="fichaTecnicaGaleria">
            
        </div>
        <table class="galeria" style="width:560px;">
            <tr>
<%
contador = 0
'Instancia o objeto XMLDOM.
Set objXMLDoc = Server.CreateObject("Microsoft.XMLDOM")

'Indicamos que o download em segundo plano não é permitido
objXMLDoc.async = False

'Carrega o domcumento XML
objXMLDoc.load(Server.MapPath("/adIntranetv3Amil/xml/tuss_multiplicadores.xml"))

'Carrega o domcumento XML
'Para quem possui serviço de REVENDA, utilize este caminho
'objXMLDoc.load("E:\vhosts\DOMINIO_COMPLETO\httpdocs\internet.xml")

'O método parseError contém informações sobre o último erro ocorrido
if objXMLDoc.parseError <> 0 then

    response.write "Código do erro: " & objXMLDoc.parseError.errorCode & "<br>"
    response.write "Posição no arquivo: " & objXMLDoc.parseError.filepos & "<br>"
    response.write "Linha: " & objXMLDoc.parseError.line & "<br>"
    response.write "Posição na linha: " & objXMLDoc.parseError.linepos & "<br>"
    response.write "Descrição: " & objXMLDoc.parseError.reason & "<br>"
    response.write "Texto que causa o erro: " & objXMLDoc.parseError.srcText & "<br>"
    response.write "Url do arquivo com problemas: " & objXMLDoc.parseError.url
     
else
    'Set NodeList = objXMLDoc.documentElement.selectNodes("channel/filial") 
    %>
    <div style="float: left; width: 400px">
        <div id="fichaTecnicaGaleria">
        
        </div>
        <table class="galeria" style="width:560px;">
        <tr>
        <%
        set registro = objXMLDoc.getElementsByTagName("filial")
        
        for i=0 to registro.length - 1
            'Response.Write("<BR>i - " & i & " - " & registro.item(i).text & "<br>")
            vtitulo = registro.item(i).selectSingleNode("./UF").text
            if vtitulo = varFilial then
                set NodeList = objXMLDoc.documentElement.getElementsByTagName("filial")(i).selectNodes("colaborador")
                for a = 0 to NodeList.length - 1
                    vnome = NodeList.item(a).selectSingleNode("./nome").text
                    vimg = NodeList.item(a).selectSingleNode("./imgThumb").text
                    vdiretoria = NodeList.item(a).selectSingleNode("./diretoria").text
                    %>
                    <td>
                        <div style="line-height: 100px; font-size: 100px; width: 99px; height: 100px; padding: 0px 0px; padding: 0px 0; border: 1px solid #EFEFEF">
                            <img style="vertical-align: middle; border: 0" src="/adIntranetv3Amil/images/home2008/tuss_multiplicadores/<%=varFilial%>/<%=vimg%>" />
                        </div>
                        <div>
                            <h5 style="font-size: 100%; margin: 5px 0 5px 0">
                                <%=vnome%><br /></h5>
                                <%=vdiretoria%></div>
                    <%
                    contador = contador + 1
                    if contador mod 5 = 0 then response.write "</tr><tr>" 
                next
            end if
        next

end if

'Destruindo os objetos
Set objXMLDoc = Nothing
Set raiz = Nothing
%>
</tr>
</table>


</div>


</div>

<!--#include file="inc/footer.aspx" -->

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...