2014-02-12 2 views
1

는/XAML .NET 4.5 프로젝트, 나는 유사한 구조를 가진하여 XDocument를 만들려고 해요 : 문서를 작성하는 방법은 같이합니다 (단순화 보인다 하여 XDocument 추가 여러 XElements 내 윈도우 폰 8 C#에서

<element1> 
    <subelement1> 
    </subelement1> 
    <subelement2> 
    ...etc... 
    </subelement2> 
</element1> 

<element2> 
    <subelement1> 
    </subelement1> 
    <subelement2> 
    ...etc... 
    </subelement2> 
</element2> 

질문의 목적) :

... createXML() 
{ 
    XDocument doc = new XDocument(); 

    XElement elem1 = new XElement("element1"); 
    elem1.Add(new XElement("subelement1")); 
    XElement elem2 = new XElement("element2"); 

    doc.Add(elem1); 
    doc.Add(elem2); 
} 

그러나 나는 그것이 잘못된 문서 구조를 만들 것이라고 말 InvalidOperationException가 계속.

나는 왜 그 문서가 여러 "루트 노드"를 갖게 될지 알고 있지만, 실제로 그렇게 할 필요가있다.

이 구조는 문서를 문자열로받는 제 3자가 수행하는 웹 서비스에 필요합니다.

그래서이 질문은 입니다. "어떻게이 구조를 얻을 수 있습니까? 대신 다른 XObject를 사용해야합니까?"

는 (난 그냥 호기심 다른 방법이 있는지 4381 '... 아마도 가장 간단한 해결책은 XElements의 모음을 사용하는 것입니다 알고)

+1

만들려는 것은 유효한 XML 문서가 아니므로 표준 라이브러리를 만들면 도움이되지 않습니다. 당신은 옳은 일을하고 있음을 알고 있습니다. 왜 그 일을하지 않으 시렵니까? – AakashM

답변

1

당신은 상단에 지정된 구조 유효한 XML 문서에 단일 루트 요소가 있어야하기 때문에 게시물의 귀하의 문서에는 허용되지 않는 최상위 레벨에 두 개의 요소가 있습니다.

생성시 루트 요소를 추가 한 다음 문서를 읽을 때이를 삭제하면이 문제를 해결할 수 있습니다.

document = new XDocument(new XElement("root", elem1, elem2));