 <p>You're referencing the root of the XML document, that's why only the data from the first element is being read. Get rid of the <code>//</code> in your call to <code>SelectSingleNode</code>:</p> <pre><code> currentBox.Compliment = currentBoxNode.SelectSingleNode("compliment").InnerText; currentBox.Description = currentBoxNode.SelectSingleNode("description").InnerText; currentBox.BoxType = currentBoxNode.SelectSingleNode("boxtype").InnerText; currentBox.InsideLength = decimal.Parse(currentBoxNode.SelectSingleNode("il").InnerText); currentBox.InsideBreadth = decimal.Parse(currentBoxNode.SelectSingleNode("ib").InnerText); currentBox.InsideHeight = decimal.Parse(currentBoxNode.SelectSingleNode("ih").InnerText); currentBox.OutsideLength = decimal.Parse(currentBoxNode.SelectSingleNode("ol").InnerText); currentBox.OutsideBreadth = decimal.Parse(currentBoxNode.SelectSingleNode("ob").InnerText); currentBox.OutsideHeight = decimal.Parse(currentBoxNode.SelectSingleNode("oh").InnerText); currentBox.BoxWeight = decimal.Parse(currentBoxNode.SelectSingleNode("bw").InnerText); currentBox.BoxGrossWeight = decimal.Parse(currentBoxNode.SelectSingleNode("bgw").InnerText); currentBox.BoxStrength = int.Parse(currentBoxNode.SelectSingleNode("boxstrength").InnerText); </code></pre> <p>You can also use ./ to indicate current context:</p> <pre><code>currentBox.Compliment = currentBoxNode.SelectSingleNode("./compliment").InnerText; ... </code></pre>