Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

XDocument.Descendants not returning descendants

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"         xmlns:xsd="http://www.w3.org/2001/XMLSchema">     <SetNationalList xmlns="http://www.lge.com/ddc">       <nationalList>         <portnumber>6000</portnumber>         <slaveaddress>7000</slaveaddress>         <flagzone>2</flagzone>         <flagindivisual>5</flagindivisual>         <flagdimming>3</flagdimming>         <flagpattern>6</flagpattern>         <flaggroup>9</flaggroup>       </nationalList>     </SetNationalList>   </s:Body> </s:Envelope> 

XDocument xdoc = XDocument.Parse(xml); foreach (XElement element in xdoc.Descendants("nationalList")) {    MessageBox.Show(element.ToString()); } 

I'd like to iterate through every nodes under nationalList but it isn't working for me, it skips the foreach loop entirely. What am I doing wrong here?

like image 924
l46kok Avatar asked Aug 13 '12 11:08

l46kok


1 Answers

You're not including the namespace, which is "http://www.lge.com/ddc", defaulted from the parent element:

XNamespace ns = "http://www.lge.com/ddc"; foreach (XElement element in xdoc.Descendants(ns + "nationalList")) {     ... } 
like image 86
Jon Skeet Avatar answered Sep 19 '22 13:09

Jon Skeet