DESENVOLVIMENTO DE
SOFTWARE PARA INTERNET
1
quarta-feira, 7 de novembro de 12
XML COM ASP.NET E C#
2
quarta-feira, 7 de novembro de 12
XML COM ASP.NET E C#
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.
3
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
As principais formas que ocorrem em um documento XML:
•Elementos
•Atributos
•Entidades
•Instruções de processamento
•Comentários
•Seções CDATA
4
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
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.
5
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
ELEMENTOS:
•Exemplo:
<?xml version=”1.0” encoding=”ISO-8859-1”?>
<letras>
<letra>A</letra>
<letra>B</letra>
</letras>
6
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
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>
7
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
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
&lt;
&gt;
&amp;
&apos;
&quot;
Insere
<
>
&
‘
“
8
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
ENTIDADES:
Inválido:
<compositor>Gil & Caetano</compositor>
Válido:
<compositor>Gil &amp; Caetano</compositor>
9
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
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.
10
quarta-feira, 7 de novembro de 12
ESTRUTURA DE UM DOCUMENTO XML
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>
11
quarta-feira, 7 de novembro de 12
XML DOCUMENT OBJECT MODEL (DOM)
É 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
12
quarta-feira, 7 de novembro de 12
XML DOCUMENT OBJECT MODEL (DOM)
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”);
13
quarta-feira, 7 de novembro de 12
XML DOCUMENT OBJECT MODEL (DOM)
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>”);
14
quarta-feira, 7 de novembro de 12
HIERARQUIA DE UM ARQUIVO XML
<?xml version=”1.0” encoding=”ISO-8859-1”?>
Instrução de processamento
<cadastro>
Elemento Raiz
Elem. filho de cadastro índice (0)
<cliente>
<nome>Emilio Parmegiani</nome>
Elem. filho de cliente índice (0)
<profissão>Professor</profissão>
Elem. filho de cliente índice (1)
</cliente>
Elem. filho de cadastro índice (1)
<cliente>
<nome>Leonardo Assis</nome>
Elem. filho de cliente índice (0)
<profissão>Programador</profissão>
Elem. filho de cliente índice (1)
</cliente>
</cadastro>
15
quarta-feira, 7 de novembro de 12
MÉTODOS PARA ACESSAR UM OBJETO DOM
DocumentElement: acessar os elementos do documento XML.
XmlDocument doc = new XmlDocument();
doc.Load(@“c:\sistema\pedidos.xml”);
XmlElemento elem = doc.DocumentElement;
16
quarta-feira, 7 de novembro de 12
MÉTODOS PARA ACESSAR UM OBJETO DOM
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/>");
}
}
}
}
17
quarta-feira, 7 de novembro de 12
MÉTODOS PARA ACESSAR UM OBJETO DOM
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);
}
}
}
18
quarta-feira, 7 de novembro de 12
MÉTODOS PARA ACESSAR UM OBJETO DOM
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>”);
19
quarta-feira, 7 de novembro de 12
MÉTODOS PARA ACESSAR UM OBJETO DOM
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>");
}
}
}
20
quarta-feira, 7 de novembro de 12
MÉTODOS PARA ACESSAR UM OBJETO DOM
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>");
}
}
}
21
quarta-feira, 7 de novembro de 12
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
OBRIGADO
PROF. EMILIO PARMEGIANI
DOWNLOAD DO MATERIAL
23
quarta-feira, 7 de novembro de 12
Download

quarta-feira, 7 de novembro de 12