2 Replies Latest reply: Aug 20, 2018 11:12 AM by Robson silva RSS

    Ler tags xml

    Robson silva

      Qlik Brasil

      Boa noite.

       

       

      Tenho Uma Lista de Arquivos xml é Preciso:

      ler o startTime da frase tag if ELE para> 0 (Maior that zero). Porem, se ELE for = 0, Tenho Que ler O Primeiro valor de comprimento <> 0 Dentro da tag <token> de Cada Arquivo.

       

       

      Ex: fazer Arquivo 1 Preciso capturar Apenas o "0,385", pois, <Frase startTime = "0.000" endTime = "5.605">

          Ja Arquivo 2, Preciso capturar "2.645" da tag <frase>

       

       

      Arquivo1:

       

       

      <? Xml version = "1.0"?>

      <Trans escriba = "auto" version = "0" version_date = "">

      <Speakers>

      <Speaker id = "SPK1" name = "looser [Telefono] 0" check = "no" type = "dooo" dialeto = sotaque "nativo" = "" scope = "local" />

      <Speaker id = "spk2" name = "looser [Telefono] 1" check = "no" type = "dooo" dialeto = sotaque "nativo" = "" scope = "local" />

      <Speaker id = "spk3" name = "looser [Telefono] 2" check = "no" type = "dooo" dialeto = sotaque "nativo" = "" scope = "local" />

      <Speaker id = "spk4" name = "looser [Telefono] 0" check = "no" type = "fiiiiiiiiii" dialeto = sotaque "nativo" = "" scope = "local" />

      <Speaker id = "spk5" name = "looser [Telefono] 1" check = "no" type = "fiiiiiiiiii" dialeto = sotaque "nativo" = "" scope = "local" />

      </ Speakers>

      <Tópicos>

      </ Topics>

      <Programa Episode = "3dc56f411c1ac0a93cce14c97d1b1f88e49a9a2a428e4843" AIR_DATE = "">

      <Tipo Seção = "relatório" startTime = "0" endTime = "605,22" length = "605,220000">

      <Vire orador = modo "SPK1" = fidelidade "planejado" = "high" startTime = "0.000" endTime = "22,945" canal = "studio">

       

       

      <Frase startTime = "0.000" endTime = "5.605">

       

       

      <Tempo token = "0.000" Comprimento = "0,385" data = "aaaa" />

      <Tempo token = "0,385" comprimento = "0.700" data = "bbbbb" />

      <Tempo token = "1.085" Comprimento = "0,230" data = "cccc" />

      <Tempo token = "1.315" Comprimento = "0.400" data = "dddd" />

      <Tempo token = "1.715" Comprimento = "0.180" data = "ffffffeeeee" />

       

       

       

       

      ....

       

       

       

       

      Arquivo2:

       

       

      <? Xml version = "1.0"?>

      <Trans escriba = "auto" version = "0" version_date = "">

      <Speakers>

      <Speaker id = "SPK1" name = "looser [Telefono] 0" check = "no" type = "dooo" dialeto = sotaque "nativo" = "" scope = "local" />

      <Speaker id = "spk2" name = "looser [Telefono] 1" check = "no" type = "dooo" dialeto = sotaque "nativo" = "" scope = "local" />

      <Speaker id = "spk3" name = "looser [Telefono] 0" check = "no" type = "fiiiiiiiiii" dialeto = sotaque "nativo" = "" scope = "local" />

      </ Speakers>

      <Tópicos>

      </ Topics>

      <Programa Episode = "3dc56f431d47c0a93cce14cf7d1b1f88e7cb9a2a428c401a" AIR_DATE = "">

      <Tipo Seção = "relatório" startTime = "0" endTime = "73,81" comprimento = "78,120000">

      <Vire orador = modo "SPK1" = fidelidade "planejado" = "high" startTime = "2.645" endTime = "5.145" canal = "studio">

       

       

      <Frase startTime = "2.645" endTime = "5.145">

       

       

      <Tempo token = "2.645" Comprimento = "0.180" data = "oooo" />

      <Tempo token = "2.825" Comprimento = "0.460" data = "YYYYYY" />

      <Tempo token = "3.285" Comprimento = "0.150" data = "uuuuu" />

      <Tempo token = "3.435" Comprimento = "0,350" data = "dddddssss" />

      <Tempo token = "3.785" Comprimento = "0,130" data = "jjjjjjjjjjjj" />

       

       

       

       

      obrigado a todos.

        • Re: Ler tags xml
          Luis Felipe Tensini

          Olá amigo.

           

          Eu encontrei dificuldades de fazer os seus XML, pois há uma série de anormalidades com as tags e padrões de nomenclatura.

           

          Mas de modo geral, o load que você faria na prática é algo semelhante a isso:

           

          Tabela:

          First 1 LOAD         // Carrega somente a primeira linha

              token,               // O campo que você está querendo

              Comprimento,   // Demais campos

              data

          FROM [01.txt] (XmlSimple, Table is [Trans/Tempo])

          Where token > 0; // Somente o que é maior que zero

            • Re: Ler tags xml
              Robson silva

              Boa tarde, Luis Felipe.

               

               

              Muito obrigado pela ajuda. Funcionou perfeitamente.

              Fiz apenas a adequação do campo desejado:

               

              Tabela:

              First 1   LOAD      // Carrega somente a primeira linha

              ,time                    // O campo que você está querendo

              ,data

                Comprimento,   // Demais campos

                data

                  

              FROM [01.txt] (XmlSimple, Table is [Trans/Tempo])

              Where time > 0;