Exemplo para usar ações no pacote do XML
Baixar como PDF
Compartilhar
- Última atualização2023/05/22
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
-
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 > 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.
- Em Título, insira Open an Excel Sheet e salve a ação.
-
Adicione o Passo > Passoaçã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 trabalhoação dentro do Passoaçã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 o Excel avançado > Ir para a célula após o Excel avançado: Ação 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 Passoação.
- Em Título, insira Get XML Data e salve a ação.
-
Iniciar sessão XML.
- Adicione o passo XML > Sessão inicialação 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ãoaçã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 o XML: Obter vários nósaçã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 XML > Obter nó único dentro do Loop: Loopaçã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 > Configurar célula após Obter nó únicoação.
- 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 após a ação Configurar célula, após Excel avançado: Definir célulaaçã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 o XML > Obter nó únicoação após Excel avançado: Ir para célulaação.
- Em XPath Expression, digite $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 Excel avançado > Definir célula após XML: Obter nó únicoaçã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çãoIr para a célula após Excel avançada: Definir célulaação.
- Clique em Célula ativa, selecione Uma célula à direita e depois salve a ação.
-
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.-
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. -
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.
- 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 a 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, digite sWriters.
- Clique em Create (Criar).
-
No painel Variáveis, clique no ícone de mais.
-
Para obter o valor do nó iterado,
<escritor>
nó ,use a ação Obter nó único.- Adicione a ação XML > Obter nó único dentro do segundo Loopação.
-
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.
- 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 do escritor, use a ação String > Atribuir.
- Adicione a ação String > Atribuir após o 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 do primeiro Loopação.
- Clique em Célula ativa.
- Insira $sWriters$ em Valor da célula.
- 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. -
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 Configurar 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 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:- Adicione a ação String > Assign 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çadoFechar.
- Adicione Excel avançado > Fechar dentro do passo Fechar o arquivo.
- Salve as alterações.
-
Executar o bot.