2014-12-04 2 views
0

나는 IList가 있습니다.IList에서 XML 파일 만들기

목록에서 행을 반복하고이 중에서 XML 파일을 만들 수 있습니까? 그렇다면 어떻게해야할까요?

나는 XDocument에 익숙해 지려고 노력했지만이 방법을 사용하여 IList를 통해 루프 할 수있는 방법을 찾지 못했습니다. , KISS에 당신이 원하는 경우

var list = new List<string> { "Joe", "Jim", "John" }; 

var document = new XDocument(); 
var root = new XElement("Root"); 
document.Add(root); 
list.ForEach(x => root.Add(new XElement("Name", x))); 
+0

IList list = new List<string> {"A", "B", "C"}; var doc = new XDocument(new XElement("Root", list.Cast<string>().Select(x => new XElement("Child", x)))); 
. 너는 무엇을 가지고 있니? XML이 어떻게 보이게해야합니까? – Haris

+4

노드를 통해 루프로드 함수를 호출 할 수 있습니다 – DoctorMick

+0

목록 컨테이너를 여기에 표시 할 수 있습니까? 물론 XDocument 코드 구조는 무엇입니까? – Johnny

답변

0

다음이 작동

using System; 
using System.Collections.Generic; 
using System.Xml.Serialization; 

public class Program { 
    static void Main() { 
     List<string> Data=new List<string> { "A","B","C","D","E" }; 

     XmlSerializer XMLs=new XmlSerializer(Data.GetType()); 
     XMLs.Serialize(Console.Out,Data); 

     Console.ReadKey(true); 
    } 
} 

빠른 한 줄짜리 예제를 제공하기 위해 Console.Out을 사용했지만, 쓸 파일 인 Stream을 선택할 수 있습니다.

IList<string> list = new List<string> {"A", "B", "C"}; 
var doc = new XDocument(new XElement("Root", list.Select(x => new XElement("Child", x)))); 

잊지 않는 using이 : 두 줄에서

+0

내 목록은 IList이고 IList는 좋아하지 않습니다 .ForEach - 조언 해 줄 수 있습니까? –

+0

를 사용하십시오. @Alex Joukovsky가 제공 한 솔루션과 동일하게 선택하십시오. – DoctorMick

+0

같은 문제 - IList에 선택에 대한 정의가 포함되어 있지 않아서 도움을 주셔서 감사합니다! –

1

를 사용하면 프로젝트의 참조에 System.Xml.Serialization을 추가 : 당신은 그냥 문자열 목록에서 비교적 간단한 구조 후 경우

1

원래 IList하면

using System.Collections.Generic; 
using System.Linq; 
using System.Xml.Linq; 

는 그래서 그 Enumerable.Cast<T>() 호출을 포함 할 필요가 아닌 일반 IList입니다 Select() 일할 수 있습니다. 예컨대 :

당신은 문자열을 만들고, 문자열에 변수 목록 값을 저장하고 당신은 더 명확하게 할 필요가 있기 위하여려고하고있다
+0

내 목록은 IList이고 IList는 마음에 들지 않습니다. 선택 - 조언 할 수 있습니까? –

+0

@MatthewHarris 편집을 참조하십시오. –

+0

나는 모두 같은 것을 사용하고 있는데, 여전히 같은 이슈가있다. –