DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As...

23
DESENVOLVIMENTO DE SOFTWARE PARA INTERNET 1 quarta-feira, 7 de novembro de 12

Transcript of DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As...

Page 1: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

DESENVOLVIMENTO DE SOFTWARE PARA INTERNET

1

quarta-feira, 7 de novembro de 12

Page 2: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

XML COM ASP.NET E C#

2

quarta-feira, 7 de novembro de 12

Page 3: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

XML COM ASP.NET E C#

3

Para iniciar, é importante esclarecer que XML (eXtensible Markup Language) é uma linguagem de marcação extensiva, não tem tags fixas como a linguagem de marcação HTML. Você cria suas próprias tags para descrever informações. Essa linguagem pode ser usada como arquivo de configuração, para compartilhar informações, exibir informações em diversos formatos, etc.A XML é utilizada para armazenar informações de aplicações ASP.NET e também do próprio .NET Framework. Empresas como a amazon.com disponibilizam a desenvolvedores de aplicações o acesso à sua base de dados de produtos. A própria amazon.com gera o arquivo .xml, que pode ser acessado pelo usuário via XML web service ou RSS. Milhares de websites disponibilizam conteúdo no formato XML, com o padrão RSS.

quarta-feira, 7 de novembro de 12

Page 4: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

4

As principais formas que ocorrem em um documento XML:

•Elementos

•Atributos

•Entidades

•Instruções de processamento

•Comentários

•Seções CDATA

quarta-feira, 7 de novembro de 12

Page 5: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

5

ELEMENTOS:Os elementos (tags) são compostos de tags de início (<) e tags de fim (>) e podem conter texto ou outros elementos.Regras para criação de elementos:

•Devem começar com uma letra ou um caractere sublinhado (_).

•Não devem conter espaços em branco.

•Não são permitidos espaços entre a barra e o nome do elemento.

•Não podemos sobrepor elementos.

•Todo documento XML deve conter um elemento-raiz.

•Todo elemento deve ter um elemento de fechamento.

•A XML diferencia letras minúsculas de letras maiúsculas.

quarta-feira, 7 de novembro de 12

Page 6: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

6

ELEMENTOS:

•Exemplo:

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<letras>

<letra>A</letra>

<letra>B</letra>

</letras>

quarta-feira, 7 de novembro de 12

Page 7: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

7

ATRIBUTOS:Os atributos são informações anexadas aos elementos, cujo objetivo é agregar valor ao elemento. As regras de renomeação são as mesmas utilizadas pelos elementos.Um atributo tem o seguinte formato:

À esquerda do sinal de igual “=”, colocamos o nome do atributo, e à direita, está o conteúdo entre aspas ou apóstrofos. Um elemento pode conter vários atributos. Exemplo:

<preço moeda=”R$”>15,00</preço>

quarta-feira, 7 de novembro de 12

Page 8: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

8

ENTIDADES:As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir caracteres especiais que, se inseridos diretamente, confundem o interpretador XML. Coloca-se o conteúdo de uma entidade em um documento XML usando antes do nome da entidade o símbolo “&” e um ponto e vírgula “;” após. Exemplo:

&amp;A XML tem cinco entidades embutidas:

Referência de entidade Insere&lt; <&gt; >

&amp; &&apos; ‘&quot; “

quarta-feira, 7 de novembro de 12

Page 9: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

9

ENTIDADES:

Inválido:<compositor>Gil & Caetano</compositor>

Válido:<compositor>Gil &amp; Caetano</compositor>

quarta-feira, 7 de novembro de 12

Page 10: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

10

COMENTÁRIOS:Podemos inserir comentários em um documento XML com a finalidade de descrever o próprio documento XML, além de elementos, atributos, entidades etc. Exemplo:

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<!--Isto é um comentário-->

<letras>

<letra>A</letra>

<letra>B</letra>

</letras>

Não é permitido o uso da string “--” dentro de um comentário.

quarta-feira, 7 de novembro de 12

Page 11: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

ESTRUTURA DE UM DOCUMENTO XML

11

SEÇÕES CDATA:São blocos de texto isolados do interpretador XML. São delimitados por <![DATA[ e ]]>. O interpretador XML ignora todas as marcações em uma seção CDATA, exceto ]]>, o que significa que não podemos aninhar uma seção CDATA em outra seção CDATA. Exemplo:

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<pedidos>

<pedido>

<item>Sapato preto</item>

<descrição>Sapato de couro masculino</descrição>

<preço moeda=”R$”>78,00</preço>

<descrição><![CDATA[Pedido confirmado plo e-mail: <a href=”mailto:[email protected]”>]]>

</descrição>

</pedido>

</pedidos>

quarta-feira, 7 de novembro de 12

Page 12: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

XML DOCUMENT OBJECT MODEL (DOM)

12

É uma representação na memória de um documento XML que permite a você ler, manipular ou modificar, de maneira programática, um documento XML. Um documento XML é uma árvore de nós, dos quais existem versões especializadas, como elementos, atributos, comentários, etc.O XmlNode é o objeto básico na árvore DOM, e a classe XmlDocument é a representação na memória do documento XML, implementando o nível 1 e 2 do DOM.Você pode criar um documento XML vazio usando uma instância da classe XmlDocument:XmlDocument doc = new XmlDocument();Obs.: a classe XmlDocument pertence à namespace System.Xml

quarta-feira, 7 de novembro de 12

Page 13: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

XML DOCUMENT OBJECT MODEL (DOM)

13

Em seguida, carregá-lo com dados com os métodos Load e LoadXML ou por intermédio das classes derivadas da classe XmlReader. Exemplo:XmlDocument doc = new XmlDocument();

doc.Load(“http://www.sitexxx.net/livro/pedidos.xml”);

Se o documento XML estiver no seu computador, utilize o caminho físico para o documento. Exemplo:XmlDocument doc = new XmlDocument();

doc.Load(@“c:\sistema\pedidos.xml”);

quarta-feira, 7 de novembro de 12

Page 14: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

XML DOCUMENT OBJECT MODEL (DOM)

14

O método LoadXml carrega partes de um documento XML a partir de uma string, bastante útil quando temos um documento XML que não precisa ser armazenado. Por exemplo: você pode gerar um documento XML a partir de dados provenientes de um banco de dados e carregá-lo com o método LoadXml:XmlDocument doc = new XmlDocument();

doc.LoadXml(“<pedido><item>Sapato preto</item></pedido>”);

quarta-feira, 7 de novembro de 12

Page 15: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

HIERARQUIA DE UM ARQUIVO XML

15

<?xml version=”1.0” encoding=”ISO-8859-1”?>

<cadastro>

<cliente>

<nome>Emilio Parmegiani</nome>

<profissão>Professor</profissão>

</cliente>

<cliente>

<nome>Leonardo Assis</nome>

<profissão>Programador</profissão>

</cliente>

</cadastro>

Instrução de processamento

Elemento Raiz

Elem. filho de cadastro índice (0)

Elem. filho de cliente índice (0)

Elem. filho de cliente índice (1)

Elem. filho de cadastro índice (1)

Elem. filho de cliente índice (0)

Elem. filho de cliente índice (1)

quarta-feira, 7 de novembro de 12

Page 16: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

MÉTODOS PARA ACESSAR UM OBJETO DOM

16

DocumentElement: acessar os elementos do documento XML.XmlDocument doc = new XmlDocument();

doc.Load(@“c:\sistema\pedidos.xml”);

XmlElemento elem = doc.DocumentElement;

quarta-feira, 7 de novembro de 12

Page 17: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

MÉTODOS PARA ACESSAR UM OBJETO DOM

17

ChildNodes: acessar os elementos do documento XML. Extrair o conteúdo de todos os elementos nome e profissão:

using System;using System.Xml;

public partial class ChildNodes : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(@"c:\cadastro.xml"); XmlElement elem = doc.DocumentElement; for (int i = 0; i < elem.ChildNodes.Count; i++) { for (int a = 0; a < elem.ChildNodes.Item(i).ChildNodes.Count; a++) { Response.Write(elem.ChildNodes.Item(i).ChildNodes.Item(a).InnerText + "<br/>"); } } }}

quarta-feira, 7 de novembro de 12

Page 18: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

MÉTODOS PARA ACESSAR UM OBJETO DOM

18

FirstChild e LastChild: acessar o conteúdo do primeiro e do último elemento de um documento XML:

using System;using System.Xml;public partial class FirstLastChild : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(@"C:\letras.xml"); XmlElement elem = doc.DocumentElement; if (elem.HasChildNodes) { Response.Write("FirstChild >> " + elem.FirstChild.InnerText + "<br>"); Response.Write("LastChild >> " + elem.LastChild.InnerText); } }}

quarta-feira, 7 de novembro de 12

Page 19: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

MÉTODOS PARA ACESSAR UM OBJETO DOM

19

NextSibling e PreviousSibling: retornar o próximo nó e o nó anterior :

XmlNode node = doc.DocumentElement.FirstChild;Response.Write(“NextSibling >> ” + node.NextSibling.InnerText + “<br>”);

ou

XmlNode node = doc.DocumentElement.LastChild;Response.Write(“NextSibling >> ” + node.PreviousSibling.InnerText + “<br>”);

quarta-feira, 7 de novembro de 12

Page 20: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

MÉTODOS PARA ACESSAR UM OBJETO DOM

20

GetElementsByTagName: acessa um elemento específico e retorna o conteúdo de todos os elementos-filho:

using System;using System.Xml;

public partial class GetElementsByTagName : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(@"C:\Regioes.xml"); XmlNodeList nodelist = doc.GetElementsByTagName("capitais"); for (int i = 0; i < nodelist.Count; i++) { Response.Write(nodelist.Item(i).InnerText + "<br>"); } }}

quarta-feira, 7 de novembro de 12

Page 21: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

MÉTODOS PARA ACESSAR UM OBJETO DOM

21

GetAttribute: retorna o conteúdo e o nome dos atributos que o documento possui:

using System;using System.Xml;

public partial class GetNamedItem : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { XmlDocument doc = new XmlDocument(); doc.Load(@"C:\revistas.xml"); XmlNodeList no = doc.GetElementsByTagName("preço"); for (int i = 0; i < no.Count; i++) { Response.Write(no.Item(i).Attributes.GetNamedItem("moeda").Name + "="); Response.Write(no.Item(i).Attributes.GetNamedItem("moeda").InnerText + "<br>"); } }}

quarta-feira, 7 de novembro de 12

Page 22: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

BIBLIOGRAFIA

• Centro para Iniciantes Microsoft: http://msdn.microsoft.com/pt-br/beginner/default.aspx• Como Programar com ASP.NET e C# - Alfredo Lotar - novatec• Desenvolvendo para Web usando o Visual Studio 2008 - Ramon Durães - novatec

22

quarta-feira, 7 de novembro de 12

Page 23: DESENVOLVIMENTO DE SOFTWARE PARA INTERNET€¦ · ESTRUTURA DE UM DOCUMENTO XML 8 ENTIDADES: As entidades permitem inserir o conteúdo de um arquivo, referenciar uma imagem ou inserir

OBRIGADO

23

PROF. EMILIO PARMEGIANI

DOWNLOAD DO MATERIAL

quarta-feira, 7 de novembro de 12