How to get values from XML?



I have a really long XML string which comes from a web service. I need to read data from coming xml. I have searched too much but many examples are for just a few depth structure. My XML is a bit deeper



<?xml version="1.0" encoding="utf-8" ?>
<root>
<node1>
<node11>50002</node11>
<node12>Schools</node12>
<node13>
<node131>8</node131>
<node132>School 1</node132>
<node133>
<node1331>22</node1331>
<node1332>Department 1</node1332>
<node1333>
<node13331>1</node13331>
<node13332>Branch 1</node13332>
<node13333>
<node133331>407</node133331>
<node133332>Full-time</node133332>
<node133333>903002</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
<node1333>
<node13331>2</node13331>
<node13332>Branch 2</node13332>
<node13333>
<node133331>407</node133331>
<node133332>Full-time</node133332>
<node133333>903002</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
</node133>
<node133>
<node1331>26</node1331>
<node1332>Department 2</node1332>
<node1333>
<node13332></node13332>
<node13333>
<node133331>416</node133331>
<node133332>Full-time</node133332>
<node133333>903001</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
</node133>
</node13>
<node13>
<node131>13</node131>
<node132>School 2</node132>
<node133>
<node1331>3</node1331>
<node1332>Department 1</node1332>
<node1333>
<node13332></node13332>
<node13333>
<node133331>517</node133331>
<node133332>Full-time</node133332>
<node133333>903001</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
</node133>
<node133>
<node1331>34</node1331>
<node1332>Department 2</node1332>
<node1333>
<node13332></node13332>
<node13333>
<node133331>830</node133331>
<node133332></node133332>
<node133333>903002</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
</node133>
<node133>
<node1331>35</node1331>
<node1332>Department 3</node1332>
<node1333>
<node13332></node13332>
<node13333>
<node133331>831</node133331>
<node133332></node133332>
<node133333>903002</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
</node133>
<node133>
<node1331>36</node1331>
<node1332>Department 4</node1332>
<node1333>
<node13332></node13332>
<node13333>
<node133331>832</node133331>
<node133332></node133332>
<node133333>903002</node133333>
<node133334>915001</node133334>
</node13333>
</node1333>
</node133>
</node13>
</node1>
</root>


Well, I can get data using XDocument like that for first nodes. But I could not read them into arrays.



var OrganizationCode= XDocument.Parse(serviceXML) //gets 50002
.Descendants("root")
.Descendants("node1")
.Descendants("node11")
.Select(x => x.Value)
.FirstOrDefault();


The answer would be a nested foreach loops but I was not able to realize it.


No comments:

Post a Comment