2014-02-12 27 views
1

在我的Windows Phone 8的C#/ XAML .NET 4.5項目,我試圖創建具有相似結構的一個XDocument:的XDocument添加多個XElements

<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說它會創建一個無效的文檔結構。

我知道爲什麼 - 它會導致文檔有多個「根節點」 - 但我實際上需要這種方式。

這個結構是由第三方完成的webservice需要的,它接收文檔爲字符串。

所以問題是「如何實現這個結構?我應該使用其他的XObject嗎?」

(我知道這可能是最簡單的解決辦法是使用XElements的集合......只是阿斯金,如果有另一種方式是出於好奇)

+1

您嘗試創建的東西不是有效的xml文檔,因此您不應該指望任何標準庫幫助您創建它。你知道並已經指出了正確的事情 - 爲什麼不做呢? – AakashM

回答

1

,你在上面指定的結構的帖子是非法的,因爲有效的XML文檔必須具有單個根元素;您的文檔在頂層有兩個元素,這是不允許的。

您可以通過在創建時添加根元素來解決此問題,然後在讀取文檔時將其丟棄;

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