VB.NET - Manipulando XML

Publicado 30/6/2011 por fernandasallai em VB.NET

Olá Pessoal =D

Hoje iremos aprender na prática algumas das funções básicas para criação e manipulação de XML.

Neste post não irei explicar a parte teórica, mas deixo como sugestão o link http://www.w3schools.com/xml/default.asp

 

Vamos começar?!

 

Para criar um projeto clique em File - New Project - ConsoleApplication  e informe o nome e o local que o projeto ficará (listagem e figura 1).

Imports System.Collections.Generic
Imports System.Linq
Imports System.Text

Module Module1

        Sub Main()

        ' Tela fica no aguardo de clicar em alguma tecla para fechar
        Console.ReadKey()
    End Sub
End Module

Listagem 1 - Codificação inicial. 

Figura 1 - Exibindo tela com codificação inicial. 

 

Vamos codificar?!

 

Importante: Os códigos deverão ser incluídos dentro método Main com exceção do namespace (este será incluído junto com os demais namespaces).

O namespace para trabalhar com XML na listagem 2.

Imports System.Xml

Listagem 2 - Incluindo namespace

Na listagem 3 criaremos um documento XML.

Dim xmlDocument As New XmlDocument()

Listagem 3 - Criando um documento XML.

Vamos criar uma variável do tipo XmlNode para criarmos os elementos (nó) do documento xml (listagem 4).

Dim node As XmlNode

Listagem 4 - Criando uma variável XMLNode.

Criaremos nosso nó raiz no documento XML conforme listagem 5 e figura 2.

// Criando um nó raiz
 node = xmlDocument.CreateElement("Aluno");

 // Adicionando o nó no documento
 xmlDocument.AppendChild(node);

Listagem 5 - Criando o nó raiz. 

Figura 2 - Exibindo o nó raiz. 

Incluiremos um nó dentro do nó raiz (listagem 6 e figura 3).

// Criando um nó chamado Nome
node = xmlDocument.CreateElement("Nome");

// Atribuido valor ao nó Nome
node.InnerText = "Fernanda";

// Adicionando o nó dentro no nó Aluno
xmlDocument.SelectSingleNode("/Aluno").AppendChild(node);

Listagem 6 - Incluindo nó dentro do nó raiz.

Figura 3 - Exibindo o nó dentro do nó raiz. 

Incluiremos um nó dentro do nó Nome na listagem 7 e figura 4.

// Criando um nó chamado Sobrenome
node = xmlDocument.CreateElement("Sobrenome");

// Atribuido valor ao nó Sobrenome
node.InnerText = "Sallai";

// Adicionando o nó dentro do nó Nome que está dentro do nó aluno
xmlDocument.SelectSingleNode("/Aluno/Nome").AppendChild(node);

Listagem 7 - Incluindo nó dentro do nó Nome. 

Figura 4 -  Exibindo mais um nó criado.

Salvando o xml informando o local e o nome que irá salvar (listagem 8).

xmlDocument.Save("C:/ProjetosDeEstudo/alunos.xml");

Listagem 8 - Salvando o xml.

Carregando um XML já existente conforme listagem 9.

xmlDocument.Load("C:/ProjetosDeEstudo/alunos.xml");

Listagem 9 - Carregando XML existente. 

InnerXml e OuterXml

Ambos mostram a estrutura completa do XML e podemos usá-los dessa forma (listagem 10 e figura 5).

Console.WriteLine(xmlDocument.InnerXml + Environment.NewLine);
Console.WriteLine(xmlDocument.OuterXml + Environment.NewLine);

Listagem 10 - Carregando a estrutura completa do XML.

Figura 5 - Exibindo a estrutura do XML.

Porém se diferenciam quando selecionamos a partir de um nó.  Veja a listagem 11 e a figura 6.

// OuterXml -> traz o nó aluno e o que tem dentro dele
Console.WriteLine(xmlDocument.SelectSingleNode("/Aluno").OuterXml + Environment.NewLine);

// InnerText -> traz só o que está dentro do nó aluno
Console.WriteLine(xmlDocument.SelectSingleNode("/Aluno").InnerXml + Environment.NewLine);

Listagem 11 - Carregando estrutura a partir de um nó selecionado. 

Figura 6 - Exibindo a estrutura do XML a partir do nó selecionado.

Para trazer somente o texto que está no nó (listagem 12 e figura 7). 

 //InnerText -> somente o texto
 Console.WriteLine(xmlDocument.InnerText);

Listagem 12 - Carregando somente o texto do(s) nó(s). 

Figura 7 - Exibindo somente o texto do(s) nó(s).  

Viu como não é tão dificil manipular XML ?!

Até o próximo post. Ah.. E não esqueça de comentar. Seu comentário ajuda a melhorar ainda mais os posts.

Obrigada =D 

Projeto disponível: AprenderXML_VBNET.zip (51,29 kb)


C# - Manipulando XML

Publicado 21/6/2011 por fernandasallai em C#

Olá Pessoal =D

Hoje iremos aprender na prática algumas das funções básicas para criação e manipulação de XML.

Neste post não irei explicar a parte teórica, mas deixo como sugestão o link http://www.w3schools.com/xml/default.asp

 

Vamos começar?!

 

Para criar um projeto clique em File - New Project - ConsoleApplication  e informe o nome e o local que o projeto ficará (listagem e figura 1).

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml;

namespace AprenderXML
{
    class Program
    {
        static void Main(string[] args)
        {                      

            // Tela fica no aguardo de clicar em alguma tecla para fechar
            Console.ReadKey();
        }
    }
}

Listagem 1 - Codificação inicial. 

Figura 1 - Exibindo tela com codificação inicial. 

 

Vamos codificar?!

 

Importante: Os códigos deverão ser incluídos dentro método Main com exceção do namespace (este será incluído junto com os demais namespaces).

O namespace para trabalhar com XML na listagem 2.

using System.Xml;

Listagem 2 - Incluindo namespace

Na listagem 3 criaremos um documento XML.

XmlDocument xmlDocument = new XmlDocument();

Listagem 3 - Criando um documento XML.

Vamos criar uma variável do tipo XmlNode para criarmos os elementos (nó) do documento xml (listagem 4).

XmlNode node;

Listagem 4 - Criando uma variável XMLNode.

Criaremos nosso nó raiz no documento XML conforme listagem 5 e figura 2.

// Criando um nó raiz
 node = xmlDocument.CreateElement("Aluno");

 // Adicionando o nó no documento
 xmlDocument.AppendChild(node);

Listagem 5 - Criando o nó raiz. 

Figura 2 - Exibindo o nó raiz. 

Incluiremos um nó dentro do nó raiz (listagem 6 e figura 3).

// Criando um nó chamado Nome
node = xmlDocument.CreateElement("Nome");

// Atribuido valor ao nó Nome
node.InnerText = "Fernanda";

// Adicionando o nó dentro no nó Aluno
xmlDocument.SelectSingleNode("/Aluno").AppendChild(node);

Listagem 6 - Incluindo nó dentro do nó raiz.

Figura 3 - Exibindo o nó dentro do nó raiz. 

Incluiremos um nó dentro do nó Nome na listagem 7 e figura 4.

// Criando um nó chamado Sobrenome
node = xmlDocument.CreateElement("Sobrenome");

// Atribuido valor ao nó Sobrenome
node.InnerText = "Sallai";

// Adicionando o nó dentro do nó Nome que está dentro do nó aluno
xmlDocument.SelectSingleNode("/Aluno/Nome").AppendChild(node);

Listagem 7 - Incluindo nó dentro do nó Nome. 

Figura 4 -  Exibindo mais um nó criado.

Salvando o xml informando o local e o nome que irá salvar (listagem 8).

xmlDocument.Save("C:/ProjetosDeEstudo/alunos.xml");

Listagem 8 - Salvando o xml.

Carregando um XML já existente conforme listagem 9.

xmlDocument.Load("C:/ProjetosDeEstudo/alunos.xml");

Listagem 9 - Carregando XML existente. 

InnerXml e OuterXml

Ambos mostram a estrutura completa do XML e podemos usá-los dessa forma (listagem 10 e figura 5).

Console.WriteLine(xmlDocument.InnerXml + Environment.NewLine);
Console.WriteLine(xmlDocument.OuterXml + Environment.NewLine);

Listagem 10 - Carregando a estrutura completa do XML.

Figura 5 - Exibindo a estrutura do XML.

Porém se diferenciam quando selecionamos a partir de um nó.  Veja a listagem 11 e a figura 6.

// OuterXml -> traz o nó aluno e o que tem dentro dele
Console.WriteLine(xmlDocument.SelectSingleNode("/Aluno").OuterXml + Environment.NewLine);

// InnerText -> traz só o que está dentro do nó aluno
Console.WriteLine(xmlDocument.SelectSingleNode("/Aluno").InnerXml + Environment.NewLine);

Listagem 11 - Carregando estrutura a partir de um nó selecionado. 

Figura 6 - Exibindo a estrutura do XML a partir do nó selecionado.

Para trazer somente o texto que está no nó (listagem 12 e figura 7). 

 //InnerText -> somente o texto
 Console.WriteLine(xmlDocument.InnerText);

Listagem 12 - Carregando somente o texto do(s) nó(s). 

Figura 7 - Exibindo somente o texto do(s) nó(s). 

 

Viu como não é tão dificil manipular XML ?!

Até o próximo post. Ah.. E não esqueça de comentar. Seu comentário ajuda a melhorar ainda mais os posts.

Obrigada =D 

Projeto disponível: AprenderXML.zip (23,13 kb)


Galera,

 

PadLeft e PadRight são utilizados para preencher uma string (PadLeft   - preenche com caracter(es) a esquerda e PadRight - preenche com caracter(es) a direita). Por exemplo: o campo cliente terá 4 posições, então caso  o campo tenha 2 posições, o PadLeft preencherá com mais duas posições a esquerda (0021) e o PadRight com duas a direita (2100).  

 

Usado assim:

StringQueRecebera = StringQueContemValor.PadLeft(quantidadeDeCaracteres,'caracterQueSeraUsadoParaCompletarQuantidadeInformada')

 

Vamos começar?!

 

Nesse post, nosso campo terá 9 caracteres, caso o valor digitado no textbox não contenha 9 caracteres, será preenchido com zero até ser completada a quantidade.

OBS: a quantidade de caracteres e o caracter que preencherá até chegar a quantidade é de sua escolha, basta alterá-lo.

 

Para criar um projeto clique em File - New Project - Windows - Windows Forms Application e informe o nome e o local que o projeto ficará.

OBS: Iremos usar uma aplicação Windows Forms e VB.NET, mas poderá ser realizado em uma aplicação Web e em outra linguagem com algumas modificações conforme a escolha.

Na figura 1 teremos o layout do nosso formulário (Form1.cs - Design).

Figura 1 - Layout do formulário (Form1.cs).

OBS: nomeie o TextBox - txtInformacao, Button   - btnOK, label Resultado1 - lblResultado1 e label Resultado2 - lblResultado2. 

A listagem 1 exibe a codificação comentada do form1.cs

Public Class Form1

    'variável string para exibir o erro
    Dim mensagem As String = String.Empty

    Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
        'Se validar campos
        If (ValidaCampos()) Then

            ' Preenche as labels com os valores formatados com 9 caracteres               

            lblResultado.Text = txtInformacao.Text.PadLeft(9, "0")
            lblResultado2.Text = txtInformacao.Text.PadRight(9, "0")

        Else

            ' Exibe mensagem de erro caso não preencha o campo
            MessageBox.Show("" + mensagem, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information)
        End If
    End Sub

    ''' 
    ''' Validar preenchimento do campo
    ''' 
    ''' 
    ''' 
    Private Function ValidaCampos() As Boolean
        Dim camposPreenchidos As Boolean = True

        If txtInformacao.Text = String.Empty Then
            mensagem = "Informe algo"
            camposPreenchidos = False
        End If

        Return camposPreenchidos
    End Function

End Class

Listagem 1 - Codificação do formulário.

Pronto... Vamos executar. F5 nele =D

Informe algo com menos de 9 caracteres conforme figura 2.

Figura 2 - Informando o valor.

Clicando no botão OK o resultado será conforme a figura 3.

Figura 3 - Exibido resultado.

Como digitei somente 2 caracteres, foi incluído mais sete (zeros) para completar os 9 caracteres.

OBS: Nesse exemplo digitei números, mas poderia usar letras etc, depende do que está sendo usado por você.

Espero que tenham gostado e até o próximo post.

Projeto disponível: PadLeft_PadRight_VBNET.zip (70,32 kb)


C# - PadLeft e PadRight

Publicado 9/6/2011 por fernandasallai em C#

Galera,

 

PadLeft e PadRight são utilizados para preencher uma string (PadLeft   - preenche com caracter(es) a esquerda e PadRight - preenche com caracter(es) a direita). Por exemplo: o campo cliente terá 4 posições, então caso  o campo tenha 2 posições, o PadLeft preencherá com mais duas posições a esquerda (0021) e o PadRight com duas a direita (2100).  

 

Usado assim:

StringQueRecebera = StringQueContemValor.PadLeft(quantidadeDeCaracteres,'caracterQueSeraUsadoParaCompletarQuantidadeInformada')

 

Vamos começar?!

 

Nesse post, nosso campo terá 9 caracteres, caso o valor digitado no textbox não contenha 9 caracteres, será preenchido com zero até ser completada a quantidade.

OBS: a quantidade de caracteres e o caracter que preencherá até chegar a quantidade é de sua escolha, basta alterá-lo.

 

Para criar um projeto clique em File - New Project - Windows - Windows Forms Application e informe o nome e o local que o projeto ficará.

OBS: Iremos usar uma aplicação Windows Forms e C#, mas poderá ser realizado em uma aplicação Web e em outra linguagem com algumas modificações conforme a escolha.

Na figura 1 teremos o layout do nosso formulário (Form1.cs - Design).

Figura 1 - Layout do formulário (Form1.cs).

OBS: nomeie o TextBox - txtInformacao, Button   - btnOK, label Resultado1 - lblResultado1 e label Resultado2 - lblResultado2. 

A listagem 1 exibe a codificação comentada do form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace PadLeft_PadRight
{
    public partial class Form1 : Form
    {
        // variável string para exibir o erro
        string mensagem = string.Empty;

        public Form1()
        {
            InitializeComponent();
        }

        private void btnOK_Click(object sender, EventArgs e)
        {
            // Se validar campos
            if (ValidaCampos())
            {
                // Preenche as labels com os valores formatados com 9 caracteres               

                lblResultado.Text = txtInformacao.Text.PadLeft(9, '0');

                lblResultado2.Text = txtInformacao.Text.PadRight(9, '0');
            }
            else
            {
                // Exibe mensagem de erro caso não preencha o campo
                MessageBox.Show("" + mensagem, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }

        /// 
        /// Validar preenchimento do campo
        /// 
        /// 
        private bool ValidaCampos()
        {
            bool camposPreenchidos = true;

            if (txtInformacao.Text == string.Empty)
            {
                mensagem = "Informe algo";

                camposPreenchidos = false;
            }          

            return camposPreenchidos;
        }
    }
}

Listagem 1 - Codificação do formulário.

Pronto... Vamos executar. F5 nele =D

Informe algo com menos de 9 caracteres conforme figura 2.

Figura 2 - Informando o valor.

Clicando no botão OK o resultado será conforme a figura 3.

Figura 3 - Exibido resultado.

Como digitei somente 2 caracteres, foi incluído mais sete (zeros) para completar os 9 caracteres.

OBS: Nesse exemplo digitei números, mas poderia usar letras etc, depende do que está sendo usado por você.

Espero que tenham gostado e até o próximo post.

Projeto disponível: PadLeft_PadRight.zip (40,53 kb) 


Aprenderemos hoje como adicionar uma folha de estilo (CSS) a uma página aspx.

Nesse post iremos criar uma página com o texto Adicionando CSS Dinamicamente e um botão para alterar a CSS padrão pela outra.

Vamos começar?!

Para criar um projeto clique em File - New Project - Web - Asp.Net Empty Web Application e informe o nome e o local que o projeto ficará.

Para adicionar uma página aspx clique no projeto com o botão direito do mouse - ADD - New New Item - Web Form e informe o nome da página.

A página aspx adicionada deverá ficar conforme listagem 1.

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Estudando</title>

    <link type="text/css" href="CSS/Padrao.css" rel="Stylesheet" />
</head>
<body>
    <form id="frmAspNet" runat="server">
    <div>
        Adicionando CSS Dinamicamente        
    </div>
    <asp:Button ID="btnAlterar" runat="server" Text="Alterar CSS" onclick="btnAlterar_Click" />
    </form>
</body>
</html>

Listagem 1 - HTML da página.

Incluiremos 2 folhas de estilos com nomes: Padrao.CSS e Nova.CSS (listagens 2 e 3).

OBS: Crie uma pasta no projeto CSS e dentro dela inclua as CSS (Clique com o botão direito do mouse em cima da pasta CSS - ADD - New Item - Style Sheet e informe o nome)

body 
{
    color:Purple;
    font-size:12px;
}

Listagem 2 - CSS chamada Padrao

body 
{
    color:Blue;
    font-size: 24px;
}

Listagem 3 - CSS chamada Nova

Vamos incluir o método para alterar a CSS no evento Click do botão btnAlterar (listagem 4).

         /// 
        /// Alterando a CSS
        /// 
        /// sender
        /// e
        protected void btnAlterar_Click(object sender, EventArgs e)
        {
            //Atribuindo o head (cabeçalho da nossa página)
            HtmlHead head = this.Page.Header;

            //Instanciando um HTMLLink com o nome de link
            HtmlLink link = new HtmlLink();

            //Adicionando os atributos 
            link.Attributes.Add("type", "text/css");
            link.Attributes.Add("rel", "stylesheet");
            link.Attributes.Add("href", "/CSS/Nova.css");

            //Adicionando o link ao head (cabeçalho)
            head.Controls.Add(link);
        }

Listagem 4 - Método para alterar CSS

O HtmlHead e o HtmlLink necessitam do namespace (listagem 5):

using System.Web.UI.HtmlControls;

Listagem 5 - Incluindo namespace

Pronto! Agora vamos executar o código...

Ao iniciar será exibida a seguinda página (figura 1).

Figura 1 - Página inicial.

Ao clicar no botão alterar CSS será exibida a página com o seguinte estilo (figura 2).

Figura 2 - Página com nova css.

Por hoje é só pessoal. =D

Projeto disponível: AdicionandoCSSDinamicamente.rar (18,77 kb)


O Community Zone 2010 aconteceu nos dias 16 e 17 de setembro em São Paulo, no hotel Rancho Silvestre.

Pegamos o fretado, cedido pela Microsoft, bem cedo para poder aproveitar bem o dia inteiro.

 

Assim que chegamos e fizemos nosso check-in, recebemos a programação dos dias. 

Claro que assim que nos hospedamos, fomos conhecer o paraiso que estávamos.

 

Tivemos palestras do Steven Fox (SharePoint) e do pessoal da Microsoft.

 

 Olha a foto da galera que participou desta edição.

E as refeições e sobremesas então... Show de bola... 

Galera mais animada e faminta =) 

Podemos conhecer melhor nossos amigos que sempre temos contatos através de twitter, msn e comunidades. 

Nos divertimos muito jogando boliche, sinuca, ping pong, etc e também conversamos muito sobre atividades, planos para a comunidade.  

 

 

 

 

 

 

 

 

Espero logo revê-los. Saudadesss....

Continuarei colaborando com as comunidades cada vez mais e agradeço a oportunidade que estão me dando.


Fernanda Sallai

Sem a curiosidade que me move, que me inquieta, que me insere na busca, não aprendo nem ensino - Paulo Freire