2010-07-29 3 views
1

XDocument를 사용하여 XML 파일을 만들었습니다. ListBox에서 선택한 모든 항목을 찾을 필요가있을 때까지 작동했습니다. . 이 형식을 어떻게 지정해야할지 모르겠습니다.ListBox에 문제가있는 XML 파일을 만들려고하는 Xdocument

 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); 
          } 
          ) 
         ) 
         ) 
         ); 

나는 XML에

답변

1

LINQ는이 점에서 정말 좋은 나라에서 출력에 자식 노드에서 선택한 각 국가를 원하는 - 콘텐츠의 반복 가능한 조각을 제공하는 경우, 그것은 반복됩니다. 이 시도 : 나는 SelectedValuesSelectedValue을 변경 한

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)) 
      ) 
     ) 
    ); 

참고 여러 값을 얻을 수 있습니다. 그것이 당신이 원하는 것이 아닌 경우 적절하게 조정할 수 있어야합니다.

+1

감사하지만 ListBox에는 selectedValues에 대한 정의가 없습니다. 여러 값을 가져 오는 방법을 모르는 경우 selectedIndices를 가져 와서 캐스팅을 수행하지 않아도 – Spooks

+1

이 작동하도록했습니다. new XElement ("Countries", lstCountry.GetSelectedIndices() .Select (x => new XElement ("Country", x) ) 다시 한 번 감사드립니다. – Spooks