Exemplo para usar ações no XML do pacote
Baixar como PDF
Compartilhar
- Última atualização2023/05/22
Exemplo para usar ações no XML do pacote
Usando o XML da pacote, crie um bot que lê e escreve dados de um arquivo XML para uma folha de Excel.
A amostra XML utilizada neste tutorial tem a seguinte estrutura:
<movies>
<movie genre="" year="">
<name></name>
<description></description>
<director></director>
<writers>
<writer type=""></writer>
<writer type=""></writer>
</writers>
<rating>R</rating>
</movie>
</movies>
Antes de começar, faça o download de um arquivo XML de amostra.
O tutorial tem o objetivo de demonstrar as seguintes ações:
- Use uma expressão XPath para obter um conjunto de nós com valor específico e iterar através dos itens do conjunto de nós, por exemplo, filmes com classificação específica neste tutorial.
- Utilize uma função XPath para iterar através dos conjuntos de nós filhos.
- Concatene variáveis para construir uma string.
- Escreva os dados em uma planilha do Excel.
Pré-requisitos
Verifique o seguinte:
- Você sabe como criar bots.
- Você deve conhecer a interface de usuário da Control Room.
Procedimento
-
Crie um bot e nomeie-o como XMLDataReader.
-
Adicione um passo para agrupar todas as tarefas para abrir uma planilha do Excel.
-
Adicione o Passo > Passo
ação após o fluxo Início no Editor de bot.
Nota: Para adicionar uma ação, procure a ação no painel Ações e arraste-a para o fluxo bot no Editor de bot.
- Em Título, insira Open an Excel Sheet e salve a ação.
-
Adicione o Passo > Passo
ação após o fluxo Início no Editor de bot.
-
Para criar e abrir uma planilha do Excel, use Excel avançado > Criar pasta de trabalho.
- Adicione Excel avançado > Criar pasta de trabalho ação dentro do Passo ação.
- Em Caminho do arquivo, insira C:\movies\movies.xlsx e salve a ação. Se a pasta movies não existir no caminho especificado, crie uma pasta movies no caminho.
-
Para selecionar a primeira célula da planilha de Excel, use a ação
Excel avançado > Ir para a célula.
- Adicione a ação Excel avançado > Ir para a célula após a ação Excel avançado: Criar pasta de trabalho.
- Clique em Célula específica se ainda não estiver selecionada e introduza A1.
- Salve a ação.
-
Crie outro passo para agrupar todas as tarefas de recuperação de dados XML.
- Adicione o Passo > Passo após o primeiro Passo ação.
- Em Título, insira Obter dados XML e salve a ação.
-
Iniciar sessão XML.
- Adicione o passo ação XML > Sessão inicial dentro do passo Obter dados XML.
- Em Arquivo, selecione Desktop, navegue e selecione o arquivo XML de amostra que você baixou.
- Salve as alterações.
-
Para obter todos os nós de filme com classificação R, use a ação
Obter vários nós.
- Adicione XML > Obter vários nós após Iniciar sessão ação.
-
Em XPath Expression, digite //movie[rating/text()=\'R\']e salve o ação.
O conjunto de nós selecionado é armazenado em uma variável de sistema e está disponível para o conjunto de dados do iterador Para cada nó em um conjunto de dados XML.
- Para garantir que a ação recupera todo o conjunto de nós em vez de apenas os nós de texto, clique em Expressão XPath.
-
Utilize a ação Loop para iterar através do conjunto de nós selecionados que a ação
Obter vários nós recupera.
- Adicione Loop > Loop após a XML: Obter vários nós ação.
- Em Iterador, selecione XML > Para cada nó de um conjunto de dados XML como o iterador.
- Em Atribuir a linha atual a esta variável, clique em (x) e crie uma variável com o nome padrão, por exemplo, XMLNode. Cada item do conjunto de nós está agora disponível através da variável.
- Salve o ação.
-
Para obter o nome do filme a partir do nó iterado, use a ação
Obter nó único.
- Adicione a ação XML > Obter nó único dentro da Loop: Loop ação.
- Em XPath Expression, digite $XMLNode$/name.
- Em Atribuir a saída à variável, crie uma variável e nomeie-a como sMovieName.
- Salve o ação.
-
Para escrever o nome do filme a partir da variável XMLNode, use a ação
Definir célula.
- Adicione a ação Excel avançado > Definir célula após a ação Obter nó único.
- Clique em Célula ativa, insira $sMovieName$ em Valor da célula, e salve a ação.
-
Para selecionar uma nova célula dentro da planilha do Excel, use a ação
Ir para a célula.
- Adicione a ação Ir para a célula depois da ação Set cell e da Excel avançado: Definir célula ação.
- Clique em Célula ativa, selecione Uma célula à direita, e depois salve a ação.
-
Para obter o nome do diretor a partir do nó iterado, use a ação
Obter nó único.
- Adicione a ação XML > Obter nó único após a Excel avançado: Ir para a célula ação.
- Em Expressão XPath, insira $XMLNode$/director.
- Em Atribuir a saída à variável, crie uma variável com o seguinte nome: sDirector
- Salve o ação.
-
Para escrever o nome do diretor a partir da variável XMLNode, use a ação
Definir célula.
- Adicione a ação Excel avançado > Definir célula após a XML: Obter nó único ação.
- Clique em Célula ativa, insira $sDirector$ em Valor da célula, e salve a ação.
-
Para selecionar uma nova célula dentro da planilha do Excel, use a ação
Ir para a célula.
- Adicione a ação Ir para a célula após a Excel avançado: Definir célula ação.
- Clique em Célula ativa, selecione Uma célula à direita e depois salve a ação.
-
Como os
<nós>
de escritor podem conter múltiplos<nós de>
escritor, pegue o nome de cada um, concatene os nomes e escreva tudo em uma única célula, em vez de distribuir os valores em várias células. Para isso, adicione a ação Loop dentro da ação Loop atual.-
Para saber o número de
<nós de>
escritor dentro dos<nós>
de escritor, adicione XML > Executar função XPath após da Excel avançado: Definir célula ação. Em XPath Expression , digite count($XMLNode$/writers/writer). Em Atribuir a saída à variável, crie uma variável chamada sWriterCount.Você utilizará a contagem de<nós de>
escritor para fazer um loop por todos os<nós de>
escritor. -
Adicione a ação Loop > Loop após a XML: Executar função XPath
ação.
Importante: A segunda ação Loop deve ser adicionada dentro da ação Loop principal.
- Em Iterador, selecione Por n vezes como iterador.
-
Em Vezes, insira o seguinte: $sWriterCount.String:toNumber$
Nota: sWriterCount contém um valor de string. Para converter string em um número, use o formato lt;variable name>.String:toNumber$, por exemplo, $sWriterCount.String:toNumber$.
- Em Atribuir o valor atual à variável (opcional), crie uma variável chamada Counter.
- Salve o ação.
-
Para saber o número de
-
Para concatenar os valores de todos os nós de escritor, crie uma variável de cadeia.
-
No painel Variáveis, clique no ícone de mais.
A janela Criar variável é exibida.
- Em Tipo, selecione String.
- Em Nome, insira sWriters.
- Clique em Create (Criar).
-
No painel Variáveis, clique no ícone de mais.
-
Para obter o valor do nó
<de escritor>
iterado ,use a ação Obter nó único.- Adicione a ação XML > Obter nó único dentro da segunda ação Loop.
-
Em Expressão XPath, insira $XMLNode$/writers/writer[$Counter.Number:toString$].
Usando a variável Counter, é possível acessar um nó em um índice específico. Como a variável Counter contém um valor numérico, a expressão .Number:toString$ é adicionada à variável Counter para convertê-la em uma string.
- Em Atribuir a saída à variável, crie uma variável e nomeie-a como sWriter.
- Salve o ação.
-
Para atribuir valores dos nós de escritor, use a ação
String > Atribuir.
- Adicione a ação String > Atribuir após XML: Obter nó único dentro do segundo loop.
- Em Selecionar a(s) variável(eis)/valor (opcional), insira $sWriters$, $sWriter$.
- Em Selecionar a variável da string de destino, selecione sWriters.
- Salve o ação.
Após o loop interno estar completo, a variável sWriters conterá todos os nomes dos escritores. -
Para escrever os nomes do escritor em uma nova célula, use a ação Excel avançado > Definir célula no loop principal.
- Adicione a ação Excel avançado > Definir célula depois da ação Loop dentro da primeira ação Loop.
- Clique em Célula ativa.
- Insira $sWriters$ em Valor da célula.
- Salve o ação.
Os dados recuperados de um<nó>
de filme são escritos em uma fila. Para escrever os dados do próximo<nó>
de filme, selecione a próxima linha na planilha de Excel. -
Para mover o cursor para a linha seguinte, use a ação
Excel avançado > Ir para a célula.
- Adicione a ação Ir para a célula após a ação Definir célula.
- Clique em Célula ativa, selecione Início da fila e depois salve a ação.
- Adicione a ação Ir para a célula novamente. Clique em Célula ativa, selecione Célula abaixo e depois salve a ação.
-
Antes de iterar para o próximo nó
<no conjunto>
de nós de filmes recuperado, é necessário redefinir a variável sWriters. Para reiniciar a variável sWriters, execute os seguintes passos:- Adicione a ação String > Atribuir após Excel avançado: Ir para a célula dentro do loop principal.
- Deixe Selecionar a(s) variável(eis)/valor (opcional) em branco.
- Em Selecionar a variável da string de destino, selecione sWriters.
-
Salve o ação.
-
Crie uma nova etapa.
- Adicione a ação Passo > Passo após a segunda ação Passo.
- Em Título, digite Close the file.
-
Para fechar a planilha de Excel, utilize a ação
Excel avançado
Fechar.
- Adicione Excel avançado > Fechar dentro do passo Fechar o arquivo.
- Salve as alterações.
-
Executar o bot.