C # Загрузка значений XML в словарь с именем в качестве индекса - PullRequest
0 голосов
/ 24 мая 2018

У меня есть этот XML, например

<DEV>
   <families>
       <Family Name = "King">
         <Child Num = "1">
            <ChildName> John </ChildName>
            <Details>
                <Height> 1.80 </Height>
                <Weight> 78 </Weight>
                <Age> 16 </Age>
            </Details>
         </Child>
         <Child Num = "2">
            <ChildName> Jim </ChildName>
            <Details>
                <Height> 1.90 </Height>
                <Weight> 88</Weight>
                <Age> 18</Age>
            </Details>
         </Child>
       </Family>
       <Family Name = "Trud">
         <Child Num = "1">
            <ChildName> Bill </ChildName>
            <Details>
                <Height> 1.50 </Height>
                <Weight> 78 </Weight>
                <Age> 27 </Age>
            </Details>
         </Child>
         <Child Num = "2">
            <ChildName> Alise </ChildName>
            <Details>
                <Height> 1.40 </Height>
                <Weight> 56</Weight>
                <Age> 12</Age>
            </Details>
         </Child>
       </Family>
    </Families>
</DEV>

Есть ли способ иметь словарь со всеми значениями высоты, чтобы я мог искать по имени ребенка?например, Weight_arr ["Билл"] даст мне 78.

Все имена уникальны ... Значит нет шансов, что будет 2 Билла ...

Пока я знаю, что могу получитьмассив весов, как это ... но я не могу искать по именам, только по индексам.

    string[] arr = XDocument.Load(path + @"\Pages\Fams.xml").Descendants("Weight")
                .Select(element => element.Value).ToArray();

1 Ответ

0 голосов
/ 24 мая 2018
Dictionary<string, double> weigths = document
   .Descendants("Child")
   .ToDictionary(
       e => e.Element("ChildName").Value,
       e => (double) e.Element("Details").Element("Weight")  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...