XML to JSON Transformer

Descubra mais sobre o conector XML to JSON Transformer e como usá-lo na Digibee Integration Platform

O XML to JSON Transformer transforma um XML string em um objeto JSON.

Parâmetros

Configure o conector usando os parâmetros abaixo. Campos que suportam expressões Double Braces estão marcados na coluna Suporta DB.

Parâmetro
Descrição
Tipo
Suporta DB
Padrão

Alias

Nome (alias) para a saída deste conector, permitindo que você faça referência a ele posteriormente no fluxo usando expressões Double Braces.

String

xml-to-json-1

XML Field Path

Caminho do campo XML a ser transformado, usando notação com pontos. Se o campo for uma matriz, todos os elementos serão processados. Você pode especificar vários campos separando-os por vírgulas.

String

body

Preserve Original

Se habilitado, os campos originais serão preservados no resultado da transformação. Para diferenciar os campos originais dos transformados, um sublinhado (_) é adicionado no início dos nomes dos campos originais.

Booleano

True

With Namespace

Se habilitado, os namespaces XML são preservados no resultado da transformação.

Booleano

True

Remove XML Attributes

Se habilitado, os atributos XML ficarão ocultos no resultado da transformação.

Booleano

False

All Values As String

Se habilitado, todos os valores de tags XML serão convertidos para o tipo string.

Booleano

False

Escape Special Characters

Se habilitado,escapa automaticamente caracteres XML reservados (&,<,>) para evitar erros de análise durante a transformação de dados.

Booleano

False

Tolerate Invalid XML

Se habilitado, um objeto JSON de fallback será retornado em vez de lançar uma exceção para XML inválido.

Booleano

False

Fluxo de mensagens

Entrada

O conector não requer uma mensagem de entrada específica. Você só precisa configurar o parâmetro XML Field Path com uma referência ao caminho do campo que contém o XML a ser transformado. Este campo deve estar presente na saída da etapa imediatamente anterior à execução do XML to JSON Transformer.

Saída

A estrutura de saída permanece a mesma que a recebida na etapa anterior. Os campos especificados no parâmetro XML Field Path são transformados em sua representação de objeto JSON. Se ocorrer um erro, uma propriedade error é criada no mesmo nível da propriedade original.

Quando o parâmetro Preserve Original estiver habilitado, cada campo definido no parâmetro XML Field Path gera uma propriedade adicional prefixada com um sublinhado (_), contendo a sequência XML original.

A notação com pontos de JSON identifica o elemento raiz que está sendo processado pelo pipeline e navega por ele de acordo com o caminho definido no parâmetro XML Field Path.

Exemplo:

Em um parâmetro XML Field Path representado como a.b.c.d, o conector irá:

  1. Procurar o elemento a no nível da raiz.

  2. Dentro de a ele vai encontrar b.

  3. Então, dentro de b ele vai encontrar c.

  4. Por fim, ele vai acessar d, que é o elemento a ser transformado.

O conector identifica cada <d> elemento dentro <c>→<b>→<a> e os converte em JSON.

Se um array é encontrado ao longo do caminho (por exemplo, se b contém vários itens), o algoritmo processa cada elemento do array individualmente, criando um caminho separado para cada um.

Em outras palavras, o algoritmo substitui todas as ocorrências do caminho definido no parâmetro XML Field Path ao longo da mensagem.

XML to JSON Transformer em ação

Para todos os cenários abaixo, será considerado o seguinte payload contendo campo XML String:

{  
    "xmlField": "<?xml version=\"1.0\" ?><inf:ProductInformation xmlns:inf=\"urn:product:Info\" xmlns:stk=\"urn:product:Stock\"><inf:ProductName Code=\"C00001\">Computer</inf:ProductName><inf:Price Units=\"$\">2500</inf:Price><stk:Volume Units=\"Units\">200</stk:Volume></inf:ProductInformation>"
}

Transformação de XML

Entrada

Parâmetros

  • XML Field Path: xmlField

  • Preserve Original: false

  • With Namespace: false

  • Remove XML Attributes: false

  • All Values As String: false

Saída

{
  "xmlField": {
    "ProductInformation": {
      "ProductName": {
        "Code": "C00001",
        "content": "Computer"
      },
      "Price": {
        "Units": "$",
        "content": 2500
      },
      "Volume": {
        "Units": "Units",
        "content": 200
      },
      "xmlns:stk": "urn:product:Stock",
      "xmlns:inf": "urn:product:Info"
    }
  }
}

Transformação de XML com parâmetro "Preserve Original" ativado

Entrada

Parâmetros

  • XML Field Path: xmlField

  • Preserve Original: true

  • With Namespace: false

  • Remove XML Attributes: false

  • All Values As String: false

Saída

{
  "xmlField": {
    "ProductInformation": {
      "ProductName": {
        "Code": "C00001",
        "content": "Computer"
      },
      "Price": {
        "Units": "$",
        "content": 2500
      },
      "Volume": {
        "Units": "Units",
        "content": 200
      },
      "xmlns:stk": "urn:product:Stock",
      "xmlns:inf": "urn:product:Info"
    }
  },
  "_xmlField": "<?xml version=\"1.0\" ?><inf:ProductInformation xmlns:inf=\"urn:product:Info\" xmlns:stk=\"urn:product:Stock\"><inf:ProductName Code=\"C00001\">Computer</inf:ProductName><inf:Price Units=\"$\">2500</inf:Price><stk:Volume Units=\"Units\">200</stk:Volume></inf:ProductInformation>"
}

Transformação de XML com parâmetro "With Namespace" ativado

Entrada

Parâmetros

  • XML Field Path: xmlField

  • Preserve Original: false

  • With Namespace: true

  • Remove XML Attributes: false

  • All Values As String: false

Saída

{
  "xmlField": {
    "inf:ProductInformation": {
      "inf:Price": {
        "Units": "$",
        "content": 2500
      },
      "xmlns:stk": "urn:product:Stock",
      "xmlns:inf": "urn:product:Info",
      "inf:ProductName": {
        "Code": "C00001",
        "content": "Computer"
      },
      "stk:Volume": {
        "Units": "Units",
        "content": 200
      }
    }
  }
}

Transformação de XML com parâmetro "Remove XML Attributes" ativado

Entrada

Parâmetros

  • XML Field Path: xmlField

  • Preserve Original: false

  • With Namespace: false

  • Remove XML Attributes: true

  • All Values As String: false

Saída

{
  "xmlField": {
    "ProductInformation": {
      "ProductName": "Computer",
      "Price": 2500,
      "Volume": 200
    }
  }
}

Transformação de XML com parâmetro "All Values As String" ativado

Entrada

Parâmetros

  • XML Field Path: xmlField

  • Preserve Original: false

  • With Namespace: false

  • Remove XML Attributes: true

  • All Values As String: true

Saída

{
  "xmlField": {
    "ProductInformation": {
      "ProductName": "Computer",
      "Price": "2500",
      "Volume": "200"
    }
  }
}

Transformation XML com o parâmetro “Escape Special Characters” habilitado

Entrada

{
  "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<relatorio_vendas>\n  <empresa>Soluções &amp; Cia Ltda.</empresa>\n  <data_geracao>2025-10-13</data_geracao>\n  \n  <produto id=\"A101\">\n    <nome>Placa de Vídeo TurboX</nome>\n    <estoque>50</estoque>\n    <avaliacao>4.5</avaliacao>\n    <comparacao>Performance &gt; Preço</comparacao>\n  </produto>\n  \n  <produto id=\"B202\">\n    <nome>Processador Velox 9</nome>\n    <estoque>35</estoque>\n    <avaliacao>4.8</avaliacao>\n    <comparacao>Custo &lt; Benefício</comparacao>\n  </produto>\n  \n  <observacoes>\n    Revisar o pedido #PO-789 &amp; o #PO-790.\n    A meta de vendas é &gt; 100 unidades para o Processador Velox 9.\n    O custo deve ser &lt; $500 por unidade.\n  </observacoes>\n  \n</relatorio_vendas>"
}

Parâmetros

  • XML Field Path: xmlField

  • Preserve Original: false

  • With Namespace: false

  • Remove XML Attributes: false

  • All Values As String: false

  • Escape Special Characters: true

Saída

{
  "xml": {
    "relatorio_vendas": {
      "observacoes": "    Revisar o pedido #PO-789 & o #PO-790.\n    A meta de vendas é > 100 unidades para o Processador Velox 9.\n    O custo deve ser < $500 por unidade.\n ",
      "produto": [
        {
          "estoque": 50,
          "comparacao": "Performance > Preço",
          "nome": "Placa de Vídeo TurboX",
          "id": "A101",
          "avaliacao": 4.5,
          "content": [
            "   ",
            "   ",
            "   ",
            "   ",
            " "
          ]
        },
        {
          "estoque": 35,
          "comparacao": "Custo < Benefício",
          "nome": "Processador Velox 9",
          "id": "B202",
          "avaliacao": 4.8,
          "content": [
            "   ",
            "   ",
            "   ",
            "   ",
            " "
          ]
        }
      ],
      "empresa": "Soluções & Cia Ltda.",
      "content": [
        " ",
        " ",
        "  \n ",
        "  \n ",
        "  \n ",
        "  "
      ],
      "data_geracao": "2025-10-13"
    }
  }
}

Atualizado

Isto foi útil?