Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

edub13

C# + XML

Mensagens Recomendadas

edub13

Boas pessoal, estou a fazer uma aplicação que lê ficheiros XML, mas estou com uma dúvida, como é que eu faço para ler um qualquer ficheiro sem saber à partida o seu conteúdo ?

Por exemplo :

Movie.xml

<?xml version="1.0" encoding="utf-8" ?>
<root>
 <Movie name ="Iron Man">
<Genre>Action</Genre>
<Year>2008</Year>
 </Movie>

 <Movie name ="Back to the Future">
<Genre>Adventure</Genre>
<Year>1985</Year>
 </Movie>

 <Movie name ="Dumb and Dumber To">
<Genre>Comedy</Genre>
<Year>2014</Year>
 </Movie>

</root>

Quero que ao ler o ficheiro seja possível identificar as tags presentes neste caso por exemplo a Movie, Genre e Year, para ter uma aplicação mais "dinâmica", não sei se me estou a fazer entender, vou mostrar o código que tenho ao momento (foi criado a partir de um tutorial, apenas modifiquei para poder carregar ficheiros .xml a partir do openDialog)

Form1.cs

namespace XMLReader
{
public partial class Form1 : Form
{
	public Form1()
	{
		InitializeComponent();
	}
	private void LoadMovies(string file)
	{
		XmlDocument document = new XmlDocument();
		document.Load(file);
		foreach (XmlNode node in document.DocumentElement)
		{
			string title = node.Attributes[0].Value;
			string genre = node["Genre"].InnerText;
			int year = int.Parse(node["Year"].InnerText);
			listBox.Items.Add(new Movie(title, genre, year));
		}
	}
	private void listBox_SelectedIndexChanged(object sender, EventArgs e)
	{
		if(listBox.SelectedIndex != -1)
		{
			propertyGrid.SelectedObject = listBox.SelectedItem;
		}
	}
	private void openToolStripMenuItem_Click(object sender, EventArgs e)
	{
		DialogResult dialogResult = openFileDialog1.ShowDialog();
		if(dialogResult == System.Windows.Forms.DialogResult.OK)
		{
			LoadMovies(openFileDialog1.FileName);
		}
	}
}
}

Movie.cs

namespace XMLReader
{
class Movie
{
	public string Title { get; set; }
	public string Genre { get; set; }
	public int Year { get; set; }
	public Movie(string title, string genre, int year)
	{
		this.Title = title;
		this.Genre = genre;
		this.Year = year;
	}
	public override string ToString()
	{
		return Title;
	}
}
}

Cumprimentos edub13


Learning:

C++

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.