Xdocument试图创建一个XML文件,但ListBox有问题

时间:2010-07-29 13:12:29

标签: xml linq linq-to-xml

所以我决定使用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 个答案:

答案 0 :(得分:1)

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以获取多个值。如果这不是您想要的,那么您应该能够相应地进行调整。