• Nenhum resultado encontrado

DOM

N/A
N/A
Protected

Academic year: 2021

Share "DOM"

Copied!
27
0
0

Texto

(1)

Tecnologia Web

Tecnologia Web

DOM

DOM

Anna Izabel João Tostes Ribeiro

Pontifícia Universidade Católica de Minas Gerais

(2)

Sumário

DOM

Hierarquia de nodos

Nodos especiais

(3)

DOM

Document Object Model

o É uma API (application programming interface) orientada a objetos para acessar e manipular um documento

o É independente de plataforma e linguagem

o Permite acesso a:

Conteúdo

Estrutura

Estilo

o É um padrão W3C, criado a partir da DHTML

o Composição:

Parts (Core, XML e HTML)

Levels (1, 2 e 3)

(4)

Níveis do DOM

Nível 1

o Contém funcionalidade para visualização e manipulação de documentos XML e HTML

Nível 2

o Adiciona suporte a folhas de estilo. Também oferece suporte a espaço de nomes (namespaces) e eventos, além de recursos mais sofisticados para manipulação das árvores.

Nível 3

o Especifica modelos para gerenciar DTDs e Schemas e para

validar documentos. Também especifica como salvar, carregar e formatar documentos, além de como criar visões e gerenciar

(5)

Nodos

No DOM, tudo é nodo:

o O documento (inteiro) é um nodo (document node) o Todo elemento é um nodo (element node)

o O texto dos elementos são nodos (text node) o Cada atributo é um nodo (attribute node)

o Os comentários são nodos (comment node)

A relação entre os nodos é semelhante a uma árvore

o Eles possuem elementos pai (parent) e filho (child)

o A raiz (document node) não possui pai, nem as folhas possuem filhos

(6)

Exemplo

<?xml version="1.0" encoding="iso-8859-1"?> <livraria>

<livro categoria="culinária" idioma="en"> <título>Everyday Italian</título> <autor>Giada de Laurentis</autor> <ano>2005</ano> <preço>30.00</preço> <disponibilidade quantidade="3"/> </livro>

<livro categoria="infantil" idioma="pt-br"> <título>Harry Potter</título> <autor>J.K.Rowling</autor> <ano>2005</ano> <preço>29.99</preço> <disponibilidade quantidade="15"/> </livro>

<livro categoria="web" idioma="pt-br">

<título>Internet & WWWW: Como programar</título> <autor>Harvey Deitel</autor> <autor>Paul Deitel</autor> <autor>Ramon Nieto</autor> <ano>2005</ano> <preço>79.80</preço> </livro> </livraria>

(7)

Hierarquia de Nodos

Elemento raiz: <livraria> Elemento: <livro> Pai Filho Atributo: categoria=“infantil” Atributo: idioma=“pt-br” Elemento: <título> Elemento: <autor> Elemento: <ano> Elemento: <preço> Texto: “Harry Potter” Texto: “J.K.Rowling” Texto: “2005” Texto: “29.99” Irmãos Elemento: <disponibilidade> Atributo: quantidade=“15” Elemento: <livro> Elemento: <livro> ... ...

(8)

Hierarquia de Nodos

O nodo de mais alto

nível é chamado de

raiz

Cada nodo, exceto a

raiz, tem exatamente

um pai

Um nodo pode ter

qualquer número de filhos

Uma folha é um nodo sem

filhos

Irmãos são os nodos com o mesmo pai

Elemento raiz: <livraria> Elemento: <livro> Elemento: <livro> Elemento: <livro> nextSibling previousSibling lastChild firstChild parentNode childNodes (vetor) documentElement

(9)

Hierarquia de Nodos

O texto de um nodo

é também um nodo:

o nodo texto

O texto do elemento

fica armazenado como

valor do nodo texto

Os atributos também

são nodos, do tipo

atributo

Atributos não possuem pai

Atributos possuem um

nome e um valor

Elemento: <título> Texto: “Harry Potter” nodeName: “título” nodeValue: null nodeName: “#text” nodeValue: “Harry Potter”

Elemento: <disponibilidade> Atributo: quantidade=“15” nodeName: “disponibilidade” nodeValue: null nodeName: “quantidade” nodeValue: “15” attributes (mapeamento)

(10)

Nodos Especiais

Nodo raiz: documentElement

Navegação a partir de um nodo qualquer

o Nodo pai: parentNode o Primeiro filho: firstChild o Último filho: lastChild

o Próximo irmão: nextSibling o Irmão anterior: previousSibling

(11)

Informações do Nodo

A propriedade nodeName retorna o nome do nodo (em

caixa alta)

o Se for um elemento, retorna o nome do elemento o Se for um atributo, retorna o nome do atributo o Se for texto, retorna #text

o Se for o nodo documento, retorna #document

A propriedade nodeValue retorna o valor do nodo

o Se for um elemento ou nodo documento, não funciona o Se for um texto, retorna o texto

(12)

Informações do Nodo

A propriedade nodeType retorna o tipo do nodo, sendo:

o Elemento = 1 o Atributo = 2 o Texto = 3 o ...

(13)

HTML DOM

Oferece acesso a um documento HTML como uma árvore

Elemento raiz: <html> Elemento: <body> Atributo: href=“...” Elemento: <title> Elemento: <a> Texto: “Meu título” Texto: “Meu link” Elemento: <head> Elemento: <h1> Texto: “Minha página”

(14)

HTML DOM

Objetos JavaScript

o Window – representa a janela do navegador

o Navigator – contém informações sobre o navegador o Screen – contém informações sobre a tela do cliente o History – contém os sites visitados

(15)

HTML DOM

Objetos HTML

o Document – representa um documento HTML e pode ser usado para acessar todos os outros elementos

o Outros: Anchor, Area, Base, Body, Button, Event, Form, Frame, Frameset, IFrame, Image, Input Button,

Input Checkbox, Input File, Input Hidden, Input Password, Input Radio, Input Reset, Input Submit, Input Text, Link, Meta, Object, Option, Select, Style, Table, TableCell, TableRow, Textarea

(16)

Parsers

Microsoft

o JavaScript:

var xmlDoc = new

ActiveXObject( "Microsoft.XMLDOM" );

xmlDoc.async = false;

xmlDoc.load( "livros.xml" );

o VBScript

set xmlDoc=CreateObject("Microsoft.XMLDOM")

o ASP

set xmlDoc=Server.CreateObject("Microsoft.XMLDOM")

Mozilla

o var xmlDoc = document.implementation.createDocument( "", "", null); xmlDoc.load( "livros.xml" );

(17)

Pesquisa de elementos

O método getElementsByTagName("elemento") ignora a

estrutura do documento e busca elementos com o nome

especificado

Retorna um vetor de nodos

Exemplo:

o var x=xmlDoc.getElementsByTagName("livro"); for (var i=0;i<x.length;i++)

{

// faz algo com cada elemento <livro> }

(18)

Lista de nodos

Uma lista de nodos é

retornada pela

propriedade childNodes

ou pelo método

getElementsByTagName()

O tamanho da lista é

determinado com a

propriedade length

Exemplo:

o getElementsByTagName("titulo")[0].childNodes[0].nodeValue o Retorna: Everyday Italian

Elemento[0]: <título> Texto: “Everyday Italian” Elemento[1]: <título> Texto: “Harry Potter” Elemento[2]: <título> Texto: “Internet & WWW”

(19)

Pesquisa no HTML DOM

Alternativas:

o getElementsByTagName() – retorna uma lista de elementos o getElementById() – retorna um único elemento

(20)

Recuperação do texto de um elemento

Encontrar o elemento usando getElementsByTagName()

Exemplo

o xmlDoc=loadXMLDoc("livros.xml"); var x=xmlDoc.getElementsByTagName('title'); for (i=0;i<x.length;i++) { document.write(x[i].childNodes[0].nodeValue); document.write("<br />"); }

(21)

Recuperação dos atributos

Recuperar cada atributo por seu nome usando o método

getAttribute()

Exemplo

o xmlDoc=loadXMLDoc("livros.xml"); var x=xmlDoc.getElementsByTagName('livro'); for (i=0;i<x.length;i++) { document.write(x[i].getAttribute('categoria')); document.write("<br />"); }

(22)

Criação/atribuição de um atributo

Usar o método setAttribute( "nome", "valor" )

Exemplo

o xmlDoc=loadXMLDoc("livros.xml"); var x=xmlDoc.getElementsByTagName("livro"); for(i=0;i<x.length;i++) { x.item(i).setAttribute("edição","primeira"); }

Ou o método createAttribute("nome")

Exemplo

o xmlDoc=loadXMLDoc("livros.xml"); var x=xmlDoc.getElementsByTagName('livro'); var newatt;for (i=0;i<x.length;i++) {

newatt=xmlDoc.createAttribute("edição"); newatt.value="primeira";

x[i].setAttributeNode(newatt); }

(23)

Remoções

Remover um elemento – removeChild(nodo)

o Requer a especificação do nodo a ser removido

Remover um nodo atributo –

removeAttributeNode(nodo)

Remover o texto de um elemento –

deleteData( início, tamanho)

o Requer a especificação de onde começar a remover (0-based) e quantos caracteres

o O nodo deve ser texto

Remover diretamente um atributo –

(24)

Substituições

Substituir um nodo –

replaceChild( novo nodo, nodo velho )

Substituir um texto –

(25)

Criações

Criar um elemento – createElement(nome)

Criar um atributo – createAttribute(nome)

o A propriedade value do novo atributo permite definir seu valor

Criar um texto – createTextNode(texto)

(26)

Adições

Adicionar um nodo ao fim da lista –

appendChild(nodo)

Adicionar antes de um nodo especificado –

insertBefore(novo nodo, nodo especificado)

Adicionar um atributo a um elemento –

setAttribute( nome, valor )

Adicionar texto a nodo texto –

(27)

Clonagem

A clonagem é feita com o método cloneNode(modo)

modo pode ser true ou false, dependendo do interesse

Referências

Documentos relacionados

&lt;dao&gt; Digital Archival Object (Table of Contents) Objeto de arquivamento digital (Sumário) Elemento subordinado de &lt;did&gt; usado para vincular a registros digitais

Estrelas são corpos celestes autogravitantes que emitem luz própria, cuja fonte de energia vem da fusão nuclear de hidrogênio em hélio e, posteriormente, em elementos mais pesados..

 Os músculos do assoalho pélvico suportam os órgãos da pelve e mantém a continência de urina, fezes e gases e tem extrema importância na função sexual

• São elementos inline deve ser colocado em um elemento de bloco, como. &lt;p&gt;

No final de 1980, com as descobertas da ação analgésica de opioides na medula espinhal, a analgesia epidural se tornou um mecanismo que trouxe o uso da técnica de

As Pessoas com Deficiência (PcD) deverão enviar Currículo acompanhado de Atestado Médico contendo a descrição da deficiência com o respectivo CID, desde que as

• Podem ser definidas regras inline através do atributo style , aplicável a qualquer elemento válido no &lt;body&gt; de uma página HTML, excepto aos elementos &lt;basefont&gt; ,

A metrópole em sua formação configura um complexo quadro cultural que aproxima e potencializa fenômenos significativos para a definição das raízes da problemática moderna