Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
rsaraujo_1983
Contributor
Contributor

Ler tags xml

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.

Labels (5)
1 Solution

Accepted Solutions
lfetensini
Partner - Creator II
Partner - Creator II

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

Support your colleagues. Remember to "like" the answers that are helpful to you and flag as "solved" the one that helped you solve. Cheers.

View solution in original post

2 Replies
lfetensini
Partner - Creator II
Partner - Creator II

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

Support your colleagues. Remember to "like" the answers that are helpful to you and flag as "solved" the one that helped you solve. Cheers.
rsaraujo_1983
Contributor
Contributor
Author

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;