Если вам не нужен XPath, вы можете загрузить XML в XElement и затем получить элементы, например,
var requestXml = XElement.Parse(@"<Request>
<EmailAddress>string</EmailAddress>
<Item>
<name>FirstName</name>
<value>John</value>
</Item>
<Item>
<name>LastName</name>
<value>Doe</value>
</Item>
</Request>");
var firstNameItem = (from i in requestXml.Elements("Item").Where(x=>x.Element("name").Value == "FirstName")).FirstOrDefault() ?? new XElement("Item", new XElement("value", ""));
var lastNameItem = (from i in requestXml.Elements("Item").Where(x=>x.Element("name").Value == "LastName")).FirstOrDefault() ?? new XElement("Item", new XElement("value", ""));
var firstName = firstNameItem.Element("value").Value;
var lastName = lastNameItem.Element("value").Value;
или что-то в этом роде.
РЕДАКТИРОВАТЬ:
Если ваш xml больше похож на это, вы можете использовать XmlSerializer
, чтобы перемещаться между вашим объектом и xml.
<Request>
<EmailAddress>value</EmailAddress>
<SkuNumber>value</SkuNumber>
<FirstName>value</FirstName>
<LastName>value</LastName>
</Request>