Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Índice
maxLevel4
outlinetrue
stylenone
exclude.*ndice
stylenone

 

Objetivo

O objetivo deste guia é demonstrar a técnica padrão para manipulação de arquivos xml dentro dos scripts customizados do Fluig. 

...

Bloco de código
languagejava
firstline0
titleCarregando documento
firstline0
linenumberstrue
var url = new java.net.URL("http://www.w3schools.com/xml/cd_catalog.xml");
var connection = url.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("Accept", "text/plain");
if (connection.getResponseCode() != 200) {
	throw "Failed : HTTP error code : " + connection.getResponseCode();
}
var br = new java.io.BufferedReader(new java.io.InputStreamReader(connection.getInputStream()));

...

Bloco de código
languagejava
firstline0
titleCarregando documento
firstline0
linenumberstrue
var result = "";
while ((output = br.readLine()) != null) {
	// Removendo cabeçalhos e comentários iniciais do xml exemplo
	if (output.indexOf("<?") > -1 || output.indexOf("<!") > -1) {
		continue;
	}
	result += output;
}

...

Bloco de código
languagejava
firstline0
titleRealizando o Parsing do xml para variável javascript
firstline0
linenumberstrue
var doc = new XML(result);

...

Bloco de código
firstline
languagejava
firstline0
titleManipulando xml
0linenumberstrue
 log.info("Foram encontrados " + doc.CD.length() + " discos no XML");
 // Fazendo a leitura de todos os CDs que vieram no xml
 for (y in doc.CD) {
	// Exibindo uma propriedade de um dos itens do xml
	log.info("Nome do disco: " + doc.CD[y].TITLE);
	// inserindo novo campo que conterá o valor do campo price convertido para o preco em real
	doc.CD[y].VALORBRL = "R$ " + (doc.CD[y].PRICE * 2);

	// Removendo campo Year do xml 
	delete doc.CD[y].YEAR;
}

...

Informações
titleInformações

Em anexo a este artigo temos esta mesma lógica descrita neste arquivo implementada como evento de formulário . Lembrando que esta mesma lógica também poderá ser implementada como evento de processo ou um dataset.

Download: displayFields.js

...

Nota
titleObservação

Esta técnica não pode ser utilizada para desenvolvimento de Datasets (Método createDataset) pois a classe XMLList não implementa a interface serializable causando erro na execução deste método. O XML Será lido e interpretado porém não será produzido nenhum resultado.