C # Чтение из XML-файла с использованием шаблона - PullRequest
0 голосов
/ 10 мая 2018

У меня есть XML-файл

<?xml version="1.0" encoding="utf-8" ?>
 <SaleGroupsFiles>
  <SaleGroup id="1" active="true" name="US"> 
   <files
      location="c:\mypath\"
      fileType="pdf"
      destination1="outputpath1">
      destination2="outputpath2">
    </files>
  </SaleGroup>

  <SaleGroup id="2" active="true" name="Canada"> 
  <files
      location="c:\mypath\"
      fileType="pdf"
      destination1="outputpath1">
      destination2="outputpath2">
      destination3="outputpath3">
    </files>
  </SaleGroup>
</SaleGroupFiles>

Обратите внимание, что может быть переменное количество адресатов.Остальное исправлено.Я пытаюсь прочитать данные одним выстрелом, используя XDocument

public class SaleGroup
{
    public int Id { get; set; }
    public bool Active { get; set; }
    public string Name { get; set; }
    public SaleFile File { get; set; }
}

public class SaleFile
{
    public string Location { get; set; }
    public string FileType { get; set; }
    public string[] Destination { get; set; }
}

static List<string> GetSettings(string path)
{
    var document = XDocument.Load(path);
    var root = document.Root;
    var results =
        root
        .Descendants("SaleGroup")
        .Select(element => new SaleGroup()
        {
            Active = Convert.ToBoolean(element.Attribute("active").Value),
            Id = Convert.ToInt32(element.Attribute("id").Value),
            Name = element.Attribute("name").Value,
            File = new SaleFile()
            {
                FileType = element.Descendants("files").Single().Attribute("fileType").Value,
                Location = element.Descendants("files").Single().Attribute("location").Value
            }
        })
        .ToList();

. Он читает все, кроме пунктов назначения.Есть ли способ включить загрузку всех пунктов назначения (destination1, destination2 ...) в массив или список (используя Like или regex или что-то еще)?Или мне нужно отказаться от этого подхода и просто прочитать все значения в цикле?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...