Note that there are some explanatory texts on larger screens.

plurals
  1. POLinq to XML (C#) parse XML tree with no attributes/id to object
    primarykey
    data
    text
    <p>I have a class (Person) and a XML tree:</p> <pre><code>&lt;rows&gt; &lt;row&gt; &lt;number&gt;1110&lt;/number&gt; &lt;name&gt;Street&lt;/name&gt; &lt;value&gt;First Avenue&lt;/value&gt; &lt;description&gt;First Avenue&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1120&lt;/number&gt; &lt;name&gt;House number&lt;/name&gt; &lt;value&gt;281&lt;/value&gt; &lt;description&gt;281&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1160&lt;/number&gt; &lt;name&gt;Postal&lt;/name&gt; &lt;value&gt;2552AD&lt;/value&gt; &lt;description&gt;2552AD&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1170&lt;/number&gt; &lt;name&gt;Area&lt;/name&gt; &lt;value&gt;Peru&lt;/value&gt; &lt;description&gt;Peru&lt;/description&gt; &lt;/row&gt; &lt;/rows&gt; </code></pre> <p>The person class has attributes like street, house number, postal, and area. How do I fill this person object?</p> <p>The problem in my query is that I dont know where to add:</p> <pre><code>where (string)c.Element("name") == "Street" </code></pre> <p>My code thus so far:</p> <pre><code>public class XMLparser { public Person XMLparse(string path) { Person person = new Person(); List&lt;Person&gt; ListPerson = new List&lt;Person&gt;(); XDocument file = XDocument.Load(path); var query = from c in file.Descendants("row") select new { c.Element("value").Value }; // Loop through results foreach (var value in query) { person._street = value.Value; person._housenumber = value.Value; person._postal = value.Value; person._area = value.Value; } return person; } } </code></pre> <p>What I want is to take from the xml and fill it in</p> <pre><code>person._street = value.Value; //&lt;-- First Avenue person._housenumber = value.Value; //&lt;-- 281 person._postal = value.Value; //&lt;-- 2552AD person._area = value.Value; //&lt;-- Peru </code></pre> <p>EDIT:</p> <p>Here is the original XMl tree.</p> <pre><code> &lt;?xml version="1.0" encoding="utf-8" ?&gt; &lt;results&gt; &lt;person&gt; &lt;categories&gt; &lt;category&gt; &lt;number&gt;01&lt;/number&gt; &lt;name&gt;Person&lt;/name&gt; &lt;rows&gt; &lt;row&gt; &lt;number&gt;0110&lt;/number&gt; &lt;name&gt;ID&lt;/name&gt; &lt;value&gt;value ID&lt;/value&gt; &lt;description&gt;value ID&lt;/description&gt; &lt;/row&gt; &lt;/rows&gt; &lt;/category&gt; &lt;category&gt; &lt;number&gt;08&lt;/number&gt; &lt;name&gt;Address&lt;/name&gt; &lt;rows&gt; &lt;row&gt; &lt;number&gt;1110&lt;/number&gt; &lt;name&gt;Street&lt;/name&gt; &lt;value&gt;value street&lt;/value&gt; &lt;description&gt;value street&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1120&lt;/number&gt; &lt;name&gt;House number&lt;/name&gt; &lt;value&gt;value House number&lt;/value&gt; &lt;description&gt;value House number&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1160&lt;/number&gt; &lt;name&gt;Postal&lt;/name&gt; &lt;value&gt;value Postal&lt;/value&gt; &lt;description&gt;value Postal&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1170&lt;/number&gt; &lt;name&gt;Area&lt;/name&gt; &lt;value&gt;value Area&lt;/value&gt; &lt;description&gt;value Area&lt;/description&gt; &lt;/row&gt; &lt;/rows&gt; &lt;/category&gt; &lt;/categories&gt; &lt;/person&gt; &lt;person&gt; &lt;categories&gt; &lt;category&gt; &lt;number&gt;01&lt;/number&gt; &lt;name&gt;Person&lt;/name&gt; &lt;rows&gt; &lt;row&gt; &lt;number&gt;0110&lt;/number&gt; &lt;name&gt;ID&lt;/name&gt; &lt;value&gt;value ID&lt;/value&gt; &lt;description&gt;value ID&lt;/description&gt; &lt;/row&gt; &lt;/rows&gt; &lt;/category&gt; &lt;category&gt; &lt;number&gt;08&lt;/number&gt; &lt;name&gt;Address&lt;/name&gt; &lt;rows&gt; &lt;row&gt; &lt;number&gt;1110&lt;/number&gt; &lt;name&gt;Street&lt;/name&gt; &lt;value&gt;value Street&lt;/value&gt; &lt;description&gt;value Street&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1120&lt;/number&gt; &lt;name&gt;House number&lt;/name&gt; &lt;value&gt;value House number&lt;/value&gt; &lt;description&gt;value House number&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1130&lt;/number&gt; &lt;name&gt;House number extra&lt;/name&gt; &lt;value&gt;value House number extra&lt;/value&gt; &lt;description&gt;value House number extra&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1160&lt;/number&gt; &lt;name&gt;Postal&lt;/name&gt; &lt;value&gt;value Postal&lt;/value&gt; &lt;description&gt;value Postal&lt;/description&gt; &lt;/row&gt; &lt;row&gt; &lt;number&gt;1170&lt;/number&gt; &lt;name&gt;Area&lt;/name&gt; &lt;value&gt;value Area&lt;/value&gt; &lt;description&gt;value Area&lt;/description&gt; &lt;/row&gt; &lt;/rows&gt; &lt;/category&gt; &lt;/categories&gt; &lt;/person&gt; &lt;/results&gt; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload