c# - Linq to XML Query not picking anything -


i have rather complex xml document

<itemsearchresponse xmlns="-------">   <operationrequest>     <httpheaders>     </httpheaders>     <requestid>0s57wgdpnc7t8hnbv76k</requestid>     <arguments>     </arguments>     <requestprocessingtime>0.441776990890503</requestprocessingtime>   </operationrequest>   <items>     <request>       <itemsearchrequest>       </itemsearchrequest>     </request>     <totalresults>1020</totalresults>     <totalpages>102</totalpages>     <item>       <asin>b004wl0l9s</asin>       <salesrank>1</salesrank>       <itemattributes>          <manufacturer>georgia pacific consumer products lp (cut-sheet paper)</manufacturer>          <title>gp copy &amp; print paper, 8.5 x 11 inches letter size, 92 bright white, 20    lb, ream of 500 sheets (998067r)</title>       <itemattributes>     </item>   <items> 

i run query on , returns of list of zero:

xdocument doc = xdocument.load(url); list<item> items = (from c in doc.elements("item")           select new item           {             title = c.element("title").value             salerank = c.element("salerank").value             asin = c.element("asin").value            }).tolist<item>(); 

i new xlinq according documentation should work.

first of have not valid xml. here example how should looks:

<itemsearchresponse >     <operationrequest>         <httpheaders> </httpheaders>         <requestid>0s57wgdpnc7t8hnbv76k</requestid>         <arguments> </arguments>         <requestprocessingtime>0.441776990890503</requestprocessingtime>     </operationrequest>     <items>         <request>             <itemsearchrequest> </itemsearchrequest>         </request>         <totalresults>1020</totalresults>         <totalpages>102</totalpages>         <item>             <asin>b004wl0l9s</asin>             <salesrank>1</salesrank>             <itemattributes>                 <manufacturer>georgia pacific consumer products lp (cut-sheet paper)</manufacturer>                 <title>gp copy &amp; print paper, 8.5 x 11 inches letter size, 92 bright white, 20 lb, ream of 500 sheets (998067r)</title>             </itemattributes>         </item>     </items> </itemsearchresponse> 

and code works it:

var items = (from c in doc.root.element("items").elements("item")                   select new item()                   {                     title = c.element("itemattributes").element("title").value,                     salerank = c.element("salesrank").value,                     asin = c.element("asin").value                    }).tolist(); 

or descendants:

var items = (from c in doc.root.descendants("item")                   select new                   {                     title = c.element("itemattributes").element("title").value,                     salerank = c.element("salesrank").value,                     asin = c.element("asin").value                    }).tolist(); 

Comments

Popular posts from this blog

objective c - Change font of selected text in UITextView -

php - Accessing POST data in Facebook cavas app -

c# - Getting control value when switching a view as part of a multiview -