PUBLICIDADE
Este artigo tem nota
8

Autor

francke

Francke Peixoto

membro deste setembro de 2007

Compartilhe e guarde

  • Rec6
  • StumbleUpon
  • ueba
  • linkk
  • dihitt
  • linkloko
  • linkto
  • Technorati
  • Simpy
  • del.icio.us
  • Faves: Fave It!

PUBLICIDADE

Enquete

Qual é o melhor site de buscas da internet?
domingo, 21 de outubro de 2007

Gerar Xml Dinâmicamente


1 - Usaremos o namespace using System.Xml;



Após isso escreveremos a classe abaixo:


public class ClassXML
{
private XmlDocument xmldoc;
private XmlNode xmlnode;
private string _xmlpath;
public string XmlPath {
get { return _xmlpath; }
set { _xmlpath = value; }
}
public ClassXML(){}



public XmlDocument GerarXML(DataTable tabela)
{
string parametros;

xmldoc = new XmlDocument();
xmlnode = xmldoc.CreateXmlDeclaration("1.0", "UTF-8", null);
xmldoc.AppendChild(xmlnode);

// caso a tabela não possua nenhum nome geramos o nome TABELA
parametros = ((tabela.TableName.ToString() == null) ? "TABELA" : tabela.TableName.ToString().ToUpper());

xmlnode = xmldoc.CreateElement(parametros.ToUpper());
xmldoc.AppendChild(xmlnode);
// Aqui começamos a criar toda estrutura do xml.
foreach (DataRow linha in tabela.Rows)
{
xmlnode = xmldoc.CreateElement(parametros + "_linha");
for (int i = 0; i < linha.Table.Columns.Count; i++)
{
XmlNode xmlnode_parente = xmldoc.CreateElement(linha.Table.Columns[i].ColumnName.ToString().ToUpper(),
linha.Table.Columns[i].ColumnName.ToString().ToUpper(),
null);
xmlnode_parente.InnerText = linha[i].ToString();
xmlnode.AppendChild(xmlnode_parente);
xmldoc.SelectSingleNode("/" + parametros.ToUpper() + "").AppendChild(xmlnode);
}
}
LimparDocumento();
return xmldoc;
}
}


2 - Agora com nossa classe devidamente criada, iremos criar um WebForm.aspx e em seu Page_Load iremos criar um DataTable.



Vamos aproveitar este artigo para mostrar como criar e carregar um DataTable manualmente, lembrando que você poderá carregar um DataTable através de uma conexão ao seu bando de dados ou arquivo texto e etc.

WebForm.aspx.cs


protected void Page_Load(object sender, EventArgs e)
{
// Random para criar valores pseudo-aleatórios.
Random rnd = new Random();
// Instânciando nossa Tabela.
DataTable tb = new DataTable("TB");
// Criando a Coluna, você poderá criar quantas quiser.
tb.Columns.Add("Idade");
for (int i = 0; i < 10; i++)
{
// Aqui estamos adicionando novas linhas ao nosso DataTable.
int idade = rnd.Next(18, 50);
DataRow linha = tb.NewRow();
linha["IDADE"] = idade.ToString();
tb.Rows.Add(linha);
}
// instânciando nosso obj xml.
ClassXML clsxml = new ClassXML();
// Limpando o documento e informando ao navegador que ele é do tipo XML.
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "text/xml";
// Gerar o XML com o conteudo de nossa tabela.
Response.Write(x.GerarXML(tb).OuterXml);
Response.End();
}



Agora execute a página e verá o resultado.

Bom até a próxima!
Sim   Não   Este artigo foi útil para você?
NotaComentário
8
usertop comentou em 31/10/2009

Exelente

Exelente tutorial tentei so que nao deu certo e3vo ter feito algo de errado mas vou tentar novamente valeu
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres
 

R&W Consulting - Soluções Web Hospedagem UOL HOST PagSeguro - solução para pagamentos online
© 2006-2009 R&W Informática Ltda. - Todos os direitos reservados.