Как использовать LINQ to XML для извлечения вложенных массивов? - PullRequest
2 голосов
/ 08 июня 2011

Вот пример XML, который я хочу прочитать:

<?xml version="1.0" encoding="UTF-8"?>
<hash>
  <result>
    <properties type="array">
      <property>
        <registers type="array">
          <register>
            <dials type="integer">6</dials>
          </register>
          <register>
            <dials type="integer">6</dials>
          </register>
        </registers>
        <unit-balance type="integer">-104</unit-balance>
      </property>
    </properties>
    <account-number>9001234</account-number>
  </result>
  <version>1.0</version>
</hash>

Я могу прочитать первый уровень с помощью следующего кода, но как получить регистры и связать их с соответствующим свойством?

var rawProperties = from property in customerXml.Descendants("property")
                    select new 
                    {
                        UnitBalance = property.Element("unit-balance").Value
                    };

1 Ответ

3 голосов
/ 08 июня 2011

Примерно так:

var rawProperties = customerXml.Descendants("property")
    .Select(arg =>
        new
        {
            UnitBalance = arg.Element("unit-balance").Value,
            Registers = arg.Descendants("dials").Select(x => x.Value).ToList()
        })
    .ToList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...