Proper way to read an XML document

I have an XML file:

For some reason the code is all messed up even though it shows up right in the preview… Link: Screenshot - d9a050f35a553dfe7718a7323e01bdb0 - Gyazo

`

Damage over time
This is an upgrade Damage over time


Double Damage
This is an upgrade Double damage


Slow Regen
This is an upgrade Slow Regeneration


Critical Chance
This is an upgrade Crit Chance

`

and after a lot of pain I am using this code to retrieve the information

		using (XmlReader xml = XmlReader.Create(Application.dataPath + Path.DirectorySeparatorChar + "Resources" + Path.DirectorySeparatorChar + "UpgradeDesc.xml")) {
			while (xml.Read()) {
				if (xml.NodeType == XmlNodeType.Element) {
					if (xml.GetAttribute("id") == upgrade.ToString()) {
						using (XmlReader inner = xml.ReadSubtree()) {

							bool foundDesc = false;
							bool foundName = false;
							string[] upgradeInfo = new string[3];
	
							while (inner.Read()) {
								if (foundName) {
									upgradeInfo[0] = inner.Value;
								}
								if (foundDesc) {
									upgradeInfo[1] = inner.Value;
									upgradeInfo[2] = "info not from the XML here"; return upgradeInfo;
								}
								if (inner.LocalName == "name" && string.IsNullOrEmpty(upgradeInfo[0])) {
									foundName = true;
								}
								else {
									foundName = false;
								}
								if (inner.LocalName == "desc" && string.IsNullOrEmpty(upgradeInfo[1])) {
									foundDesc = true;
								}
								else {
									foundDesc = false;
								}
							}
						}
					}
				}
			}
			throw new System.Exception("No Upgrade of type " + (Upgrade.Upgrades)upgrade + " found!");
		}

While this works, I cant imagine this is the right way. How can I improve/optimize it ?

Thanks Majk-

Ok, went for LINQ to XML