Вы не обращаете внимания на пространства имен XML в документе XML (и другие ответы не предоставляются):
<ItemLookupResponse
xmlns="http://webservices.amazon.com/AWSECommerceService/2009-03-31">
Вы должны принять это во внимание!
XPathDocument Doc = new XPathDocument(@"D:\amazon.xml");
XPathNavigator nav = Doc.CreateNavigator();
// add a XML namespace manager - pick any prefix you want
XmlNamespaceManager mngr = new XmlNamespaceManager(nav.NameTable);
mngr.AddNamespace("az", "http://webservices.amazon.com/AWSECommerceService/2009-03-31");
// use that XML namespace prefix to select
var ListPrice = nav.Select("/az:ItemLookupResponse/az:Items/az:Item/az:ItemAttributes/az:ListPrice", mngr);
ОБНОВЛЕНИЕ: если вы хотите исследовать дочерние узлы ниже вашего ListPrice
узла, вы можете сделать что-то вроде этого:
var curr = ListPrice.Current;
if(ListPrice.MoveNext())
{
var lpc = ListPrice.Current;
if(lpc.MoveToFirstChild())
{
var node = lpc.Name + "/" + lpc.Value;
while(lpc.MoveToNext())
{
node = lpc.Name + "/" + lpc.Value;
}
}
}
для перебора всех дочерних узлов в <ListPrice>
и получения их имени и значения.