Exemplo para usar ações no pacote do XML

Usando o pacote da XML, 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 > Passoaçã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 trabalhoação dentro do Passoaçã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 o Excel avançado > Ir para a célula após o Excel avançado: Ação 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 Passoação.
    2. Em Título, insira Get XML Data e salve a ação.
  6. Iniciar sessão XML.
    1. Adicione o passo XML > Sessão inicialação 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ãoaçã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 o XML: Obter vários nósaçã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 XML > Obter nó único dentro do Loop: Loopaçã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 > Configurar célula após Obter nó únicoação.
    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 após a ação Configurar célula, após Excel avançado: Definir célulaaçã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 o XML > Obter nó únicoação após Excel avançado: Ir para célulaação.
    2. Em XPath Expression, digite $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 Excel avançado > Definir célula após XML: Obter nó únicoaçã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çãoIr para a célula após Excel avançada: Definir célulaação.
    2. Clique em Célula ativa, selecione Uma célula à direita e depois salve a ação.
  15. Porque o<escritores>nó pode conter múltiplos<escritor>nós, obter o nome de cada escritor, concatenar os nomes e escrevê-los em uma única célula em vez de escrever valores em várias células. Para isso, adicione a açãoLoop dentro da açãoLoop atual.
    1. Para saber o número de<escritor>nós dentro dos<escritores>nó, adicione o XML > Executar função XPath após o Excel avançado: Definir célula. Em XPath Expression , digite count($XMLNode$/writers/writer). Em Atribuir a saída à variável, crie uma variável chamada sWriterCountação.
      Você utilizará a contagem de<escritor>para fazer um loop através de todos os nós de<escritor>nós.
    2. Adicione a ação Loop > Loop após a XML: Executar função Xpathaçã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 a 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, digite sWriters.
    4. Clique em Create (Criar).
  17. Para obter o valor do nó iterado,<escritor>nó ,use a ação Obter nó único.
    1. Adicione a ação XML > Obter nó único dentro do segundo Loopação.
    2. Em XPath Expression, digite $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 do escritor, use a ação String > Atribuir.
    1. Adicione a ação String > Atribuir após o 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 do primeiro Loopação.
    2. Clique em Célula ativa.
    3. Insira $sWriters$ em Valor da célula.
    4. Salve o ação.
    Os dados recuperados de um<recuperado>são escritos sem uma fila. Para escrever os dados do próximo<recuperado>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 Configurar 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 o próximo nó no conjunto de nós de filme<recuperado>ser iterado, é necessário reiniciar a variável sWriters. Para reiniciar a variável sWriters, execute os seguintes passos:
    1. Adicione a ação String > Assign 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çadoFechar.
    1. Adicione Excel avançado > Fechar dentro do passo Fechar o arquivo.
    2. Salve as alterações.
  24. Executar o bot.