“http://www.w3.org/TR/html4/loose.dtd”>
<!– .meuCode { font:”Courier New”, Courier, mono; font-size: 11px; color:#3333CC; }</p> <p>–>
| E daeh galerinha!
Estamos aeh novamente para dar continuidade na coluna sobre XML.
Esta classe possui outros métodos e propriedades, mas nós já vimos na coluna passada. Para acessar a coluna anterior, clique aqui. Iniciando um novo documento XML var doc:XML = new XML(); A partir deste documento, criaremos nossos elementos filhos para depois associarmos ao documento principal (doc). Criando nós ( XMLNodes ) var principal:XMLNode = doc.createElement("conta");
trace(principal);// irá mostrar <conta />
Acima, criamos um objeto da classe XMLNode do tipo ELEMENT. O parâmetro conta passado na chamada do método, é nome desejado para o novo nó criado. Ele ainda não está associado ao documento principal (doc). Mais adiante iremos ver como associá-lo. Para criar um nó do tipo TEXT NODE, utilize a sintaxe abaixo: var texto_principal:XMLNode = doc.createTextNode("Este texto vai dentro de conta");
trace(texto_principal); // irá mostrar Este texto vai dentro de conta
Nós do tipo TEXT NODE são somente texto para serem colocados dentro de outros elementos dentro de um documento XML. XMLNode.attributes principal.attributes.nome = "hugo";principal.attributes.senha = "teste";trace(principal); // irá mostrar <conta senha="teste" nome="hugo" /> XMLNode.appendChild ( elemento:XMLNode ) : Void principal.appendChild (texto_principal); trace(principal); // irá mostrar <conta senha="teste" nome="hugo">Este texto vai dentro de conta</conta> Agora conta deixa de ser um objeto vazio para conter o elemento TEXT NODE definido na variavel texto_principal. XMLNode.removeNode () : Void texto_principal.removeNode(); Ou seja, chamamos o método removeNode a partir do nó que desejamos remover. XMLNode.insertBefore ( objAserInserido:XMLNode, antesDoNó:XMLNode ) : Void var doc2:XML = new XML(); // cria um novo documento XML
var login:XMLNode = doc2.createElement("login"); // cria um elemento chamado login
var usuario:XMLNode = doc2.createElement("usuario"); // cria um elemento chamado usuario
var senha:XMLNode = doc2.createElement("senha"); // cria um elemento chamado senha
login.appendChild(usuario); // coloca usuário dentro de login
login.appendChild(senha); // coloca senha dentro de login
trace(login);
// irá mostrar <login><usuario /><senha /></login>
var intrometido:XMLNode = doc2.createElement("intrometido"); // criamos um intrometido
login.insertBefore(intrometido, senha); // inserimos o intrometido antes de senha
trace(login); // irá mostrar <login><usuario /><intrometido /><senha /></login>
XMLNode.toString() : String var stringResult:String = login.toString(); trace (stringResult); // irá mostrar <login><usuario /><intrometido /><senha /></login> trace(typeof stringResult); // irá mostrar string trace(typeof doc2); // irá mostrar object XMLNode. cloneNode ( recursivo : Boolean ) : XMLNode var comFilhos:XMLNode = login.cloneNode (true); var semFilhos:XMLNode = login.cloneNode (false); trace(comFilhos); // irá mostrar <login><usuario /><intrometido /><senha /></login> trace(semFilhos); // irá mostrar <login /> XML.contentType : String application/x-www-form-urlencoded, que é o mesmo utilizado como padrão para a maioria dos formulários HTML. Ele será utilizado quando você chamar as funções XML.send ou XML.sendAndLoad. var doc:XML = new XML(); trace(doc.contentType); // irá mostrar application/x-www-form-urlencoded doc.contentType = "text/xml"; trace(doc.contentType); // irá mostrar text/xml XML.docTypeDecl : String var doc:XML = new XML(); trace(doc.docTypeDecl); // não irá mostrar nada, pois a declaração não foi definida doc.docTypeDecl = "<!DOCTYPE greeting SYSTEM \"hello.dtd\">"; trace(doc.docTypeDecl); //irá mostrar <!DOCTYPE greeting SYSTEM "hello.dtd"> Bom galera por hoje é só. Abaixo tem um exemplo de login e senha, onde ele pesquisa em um arquivo XML gerado dentro do próprio Flash. O arquivo AS está assim: var doc:XML = new XML();
var contas:XMLNode = doc.createElement("contas");
var conta1:XMLNode = doc.createElement("conta");
// definindo parametros para a primeira conta
conta1.attributes.nome = "Hugo Ferreira da Silva";
conta1.attributes.usuario = "hugo";
conta1.attributes.senha = "teste";
// definindo parametros para a segunda conta
var conta2:XMLNode = conta1.cloneNode(false);
conta2.attributes.nome = "Danilo Santana";
conta2.attributes.usuario = "danilo";
conta2.attributes.senha = "santana";
// definindo parametros para a terceira conta
var conta3:XMLNode = conta1.cloneNode(false);
conta3.attributes.nome = "Visitante";
conta3.attributes.usuario = "guest";
conta3.attributes.senha = "guest";
// colocando as contas 1, 2 e 3 dentro do nó contas
contas.appendChild(conta1);
contas.appendChild(conta2);
contas.appendChild(conta3);
// colocando tudo dentro de doc
doc.appendChild( contas );
login.onRelease = function () {
var passou = false;
var f:XMLNode = doc.firstChild.firstChild;
for(var node:XMLNode=f; node != null; node=node.nextSibling) {
if(node.attributes.usuario == usuario.text
&& node.attributes.senha == senha.text) {
passou = true;
break;
}
trace(node);
}
if(passou == true) {
getURL("javascript:alert('Seja bem vindo " +
node.attributes.nome+"!');void(0);");
} else {
getURL("javascript:alert('Usuário ou senha incorreta');void(0);");
}
}
@braços galerinha e fiquem com Deus! |
Amigo, estou muito grato pela aula de xml parte 1 e 2, mas gostaria da 3 parte nao consegui encontrar. Vlw.
boa tarde!
o artigo é muito bom mas não consigo criar da erro na linha var contas:XMLNode = doc.createElement(“contas”); isto no Flash Builder 4