Xdocument пытается создать файл XML, возникли проблемы с ListBox - PullRequest
1 голос
/ 29 июля 2010

Поэтому я решил использовать XDocument для создания XML-файла, который работал прекрасно, пока я не наткнулся на часть, где мне нужно найти все выбранные элементы в ListBox. Я не уверен, как мне отформатировать это.

     XDocument xmlDoc = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Created: " + DateTime.Now.ToString()),
                    new XElement("Trip",
                        new XElement("TripDetails",
                            new XElement("Departure", txtDeparture.Text),
                            new XElement("Return", txtReturn.Text),                     
                             new XElement("Purpose", txtPurpose.Text),
                             new XElement("Region", ddlRegion.SelectedValue.ToString()),
  //Not working                            
                             new XElement("Countries", 
                             foreach(string x in lstCountry.SelectedValue)
                             {
                                 new XElement("Country",x);
                             }
                            )
                          )
                        )  
                       );

Я хочу вывести каждую выбранную страну в дочерние узлы в разделе Страны

1 Ответ

1 голос
/ 29 июля 2010

LINQ to XML действительно хорош в этом отношении - если вы предоставите ему итеративный фрагмент контента, он будет повторяться.Попробуйте это:

XDocument xmlDoc = new XDocument(
       new XDeclaration("1.0", "utf-8", "yes"),
       new XComment("Created: " + DateTime.Now.ToString()),
       new XElement("Trip",
           new XElement("TripDetails",
               new XElement("Departure", txtDeparture.Text),
               new XElement("Return", txtReturn.Text),                     
               new XElement("Purpose", txtPurpose.Text),
               new XElement("Region", ddlRegion.SelectedValue.ToString()),
               new XElement("Countries",
                    lstCountry.SelectedValues
                              .Cast<string>()
                              .Select(x => new XElement("Country", x))
              )
          )  
      );

Обратите внимание, что я изменил SelectedValue на SelectedValues, чтобы получить несколько значений.Если это не то, что вам нужно, надеюсь, вы сможете изменить его соответствующим образом.

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