Jump to content

[Resolvido] Obter valores de um xml para um array


hugorodrigues
 Share

Recommended Posts

Boa noite,

preciso aqui de uma pequena ajuda. Eu na app que estou a fazer, as traduções estão em ficheiros xml, em que quando um utilizador altera o idioma a aplicação tira os valores do xml e aplica nos controlos. O problema que estou a ter é que não consigo chegar ao nó do xml.

O xml que tenho até agora é este

<?xml version="1.0" encoding="UTF-8"?>
<!--en_US-->
<OpenBugTracker>
<Common>
	<value>Error</value>
	<value>Action completed</value>
	<value>Done</value>
	<value>Cancel</value>
	<value>Mandatory field</value>
	<value>Confirm</value>
	<value>Please be patient</value>
	<value>Check connection to</value>
	<value>Importing configuration</value>
	<value>Save</value>
	<value>Delete</value>
</Common>
<OBT>
	<splashScreen>
		<value>Error creating directory</value>
		<value>Error copying file</value>
	</splashScreen>
	<login>
		<value>Login</value>
		<value>Select OpenBugTracker server</value>
		<value>Manage servers</value>
		<value>Username</value>
		<value>Password</value>
		<value>Login anonymously</value>
		<value>Restore password</value>
		<value>or</value>
		<value>Register</value>
		<value>No servers available</value>
		<value>Do you want to add your first server?</value>
		<value>Pressing \"No\" will close OpenBugTracker</value>
		<value>Testing connection to</value>
	</login>
</OBT>
<ServerManager>
	<value>Server Manager</value>
	<value>Search</value>
	<value>New server</value>
	<value>Server name</value>
	<value>Manual configuration</value>
	<value>Server Host</value>
	<value>Server Port</value>
	<value>Server Username</value>
	<value>Server Password</value>
	<value>Server Database</value>
	<value>Database prefix</value>
	<value>Select server engine</value>
	<value>Use URL configuration</value>
	<value>Do you want to delete </value>
	<value>Server Instance</value>
</ServerManager>
</OpenBugTracker>

e no C# o código que tenho é este.

XmlDocument doc = new XmlDocument();
			doc.Load(Application.StartupPath + @"\Language\en_US.xml");

			XmlNodeList nodeList;
			XmlNode root = doc.DocumentElement;

			nodeList = root.SelectNodes("descendant::Common[values]");

			foreach (XmlNode value in nodeList)
				MessageBox.Show(value.Value.ToString());

Eu tirei deste link, e quando foi a ver se funcionava o nodeList fica sempre vazio :s eu sei que o problema está em indicar o nó mas é questão é que não consigo lá chegar.

A ideia é que ele percorra os values e preencha um array com os valores.

Alguém me pode ajudar?

Desde já obrigado,

Because being normal isn't funny

Link to comment
Share on other sites

Eiah o que XD andei a partir a cabeça por causa de um 's'

Eu assim que experimentar digo alguma coisa.

EDIT:

Já consegui. Só fiz uma alteração, quando se escolhe o nó do XML tem que se meter

nodeList = root.SelectNodes("descendant::Common/value");

caso contrário vai dar todos os valores na mesma string.

Edited by hugorodrigues

Because being normal isn't funny

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.