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

  1. Crie um bot e nomeie-o como XMLDataReader.
  2. Adicione um passo para agrupar todas as tarefas para abrir uma planilha do Excel.
    1. 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.
    2. Em Título, insira Open an Excel Sheet e salve a ação.
  3. Para criar e abrir uma planilha do Excel, use Excel avançado > Criar pasta de trabalho.
    1. Adicione Excel avançado > Criar pasta de trabalho ação dentro do Passo ação.
    2. 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.
  4. Para selecionar a primeira célula da planilha de Excel, use a ação Excel avançado > Ir para a célula.
    1. Adicione a ação Excel avançado > Ir para a célula após a ação Excel avançado: Criar pasta de trabalho.
    2. Clique em Célula específica se ainda não estiver selecionada e introduza A1.
    3. Salve a ação.
  5. Crie outro passo para agrupar todas as tarefas de recuperação de dados XML.
    1. Adicione o Passo > Passo após o primeiro Passo ação.
    2. Em Título, insira Obter dados XML e salve a ação.
  6. Iniciar sessão XML.
    1. Adicione o passo ação XML > Sessão inicial dentro do passo Obter dados XML.
    2. Em Arquivo, selecione Desktop, navegue e selecione o arquivo XML de amostra que você baixou.
    3. Salve as alterações.
  7. Para obter todos os nós de filme com classificação R, use a ação Obter vários nós.
    1. Adicione XML > Obter vários nós após Iniciar sessão ação.
    2. 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.
    3. 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.
  8. 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.
    1. Adicione Loop > Loop após a XML: Obter vários nós ação.
    2. Em Iterador, selecione XML > Para cada nó de um conjunto de dados XML como o iterador.
    3. 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.
    4. Salve o ação.
  9. Para obter o nome do filme a partir do nó iterado, use a ação Obter nó único.
    1. Adicione a ação XML > Obter nó único dentro da Loop: Loop ação.
    2. Em XPath Expression, digite $XMLNode$/name.
    3. Em Atribuir a saída à variável, crie uma variável e nomeie-a como sMovieName.
    4. Salve o ação.
  10. Para escrever o nome do filme a partir da variável XMLNode, use a ação Definir célula.
    1. Adicione a ação Excel avançado > Definir célula após a ação Obter nó único.
    2. Clique em Célula ativa, insira $sMovieName$ em Valor da célula, e salve a ação.
  11. Para selecionar uma nova célula dentro da planilha do Excel, use a ação Ir para a célula.
    1. 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.
    2. Clique em Célula ativa, selecione Uma célula à direita, e depois salve a ação.
  12. Para obter o nome do diretor a partir do nó iterado, use a ação Obter nó único.
    1. Adicione a ação XML > Obter nó único após a Excel avançado: Ir para a célula ação.
    2. Em Expressão XPath, insira $XMLNode$/director.
    3. Em Atribuir a saída à variável, crie uma variável com o seguinte nome: sDirector
    4. Salve o ação.
  13. Para escrever o nome do diretor a partir da variável XMLNode, use a ação Definir célula.
    1. Adicione a ação Excel avançado > Definir célula após a XML: Obter nó único ação.
    2. Clique em Célula ativa, insira $sDirector$ em Valor da célula, e salve a ação.
  14. Para selecionar uma nova célula dentro da planilha do Excel, use a ação Ir para a célula.
    1. Adicione a ação Ir para a célula após a Excel avançado: Definir célula ação.
    2. Clique em Célula ativa, selecione Uma célula à direita e depois salve a ação.
  15. 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.
    1. 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.
    2. 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.
    3. Em Iterador, selecione Por n vezes como iterador.
    4. 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$.
    5. Em Atribuir o valor atual à variável (opcional), crie uma variável chamada Counter.
    6. Salve o ação.
  16. Para concatenar os valores de todos os nós de escritor, crie uma variável de cadeia.
    1. No painel Variáveis, clique no ícone de mais.
      A janela Criar variável é exibida.
    2. Em Tipo, selecione String.
    3. Em Nome, insira sWriters.
    4. Clique em Create (Criar).
  17. Para obter o valor do nó<de escritor>iterado ,use a ação Obter nó único.
    1. Adicione a ação XML > Obter nó único dentro da segunda ação Loop.
    2. 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.
    3. Em Atribuir a saída à variável, crie uma variável e nomeie-a como sWriter.
    4. Salve o ação.
  18. Para atribuir valores dos nós de escritor, use a ação String > Atribuir.
    1. Adicione a ação String > Atribuir após XML: Obter nó único dentro do segundo loop.
    2. Em Selecionar a(s) variável(eis)/valor (opcional), insira $sWriters$, $sWriter$.
    3. Em Selecionar a variável da string de destino, selecione sWriters.
    4. Salve o ação.
    Após o loop interno estar completo, a variável sWriters conterá todos os nomes dos escritores.
  19. Para escrever os nomes do escritor em uma nova célula, use a ação Excel avançado > Definir célula no loop principal.
    1. Adicione a ação Excel avançado > Definir célula depois da ação Loop dentro da primeira ação Loop.
    2. Clique em Célula ativa.
    3. Insira $sWriters$ em Valor da célula.
    4. 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.
  20. Para mover o cursor para a linha seguinte, use a ação Excel avançado > Ir para a célula.
    1. Adicione a ação Ir para a célula após a ação Definir célula.
    2. Clique em Célula ativa, selecione Início da fila e depois salve a ação.
    3. 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.
  21. 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:
    1. Adicione a ação String > Atribuir após Excel avançado: Ir para a célula dentro do loop principal.
    2. Deixe Selecionar a(s) variável(eis)/valor (opcional) em branco.
    3. Em Selecionar a variável da string de destino, selecione sWriters.
    4. Salve o ação.
  22. Crie uma nova etapa.
    1. Adicione a ação Passo > Passo após a segunda ação Passo.
    2. Em Título, digite Close the file.
  23. Para fechar a planilha de Excel, utilize a ação Excel avançado Fechar.
    1. Adicione Excel avançado > Fechar dentro do passo Fechar o arquivo.
    2. Salve as alterações.
  24. Executar o bot.