2010-02-03 103 views
0

解析多個XElements我有一個的XElement,我需要更多的元素從一個字符串添加到它。該字符串包含多個需要解析的xml元素。我已經嘗試了XDocument.Load和XElement.Parse,但是得到錯誤。是該文件的內容如下:CSHARP如何生成/從字符串

<menu id="a"> 
    <menuItem keyID="0"> 
    <command>test</command> 
    </menuItem> 
    <menuItem keyID="0"> 
    <command>test</command> 
    </menuItem>  
</menu> 
<menu id="b"> 
    <menuItem keyID="0"> 
    <command>test</command> 
    </menuItem> 
    <menuItem keyID="0"> 
    <command>test</command> 
    </menuItem>  
</menu>  
<ecs> 
    <areas> 
    <area longitudeFrom="20.35" longitudeTo="20.37" /> 
    <area longitudeFrom="20.44" longitudeTo="20.46" /> 
    <area longitudeFrom="20.22" longitudeTo="20.25" /> 
    </areas> 
</ecs> 

什麼是閱讀所有從該字符串的元素,並將它們添加到現有的XElement的最佳方式?

+0

而錯誤是.....? – Will 2010-02-03 15:28:35

回答

1

,如果這是整個文件是正常XMLDocument.Load給你的錯誤。對於要加載的XML,它必須有一個像這樣的根。如果錯誤是在別的東西請發佈錯誤信息

<root> 
    <menu id="a"> 
     <menuItem keyID="0"> 
     <command>test</command> 
     </menuItem> 
     <menuItem keyID="0"> 
     <command>test</command> 
     </menuItem>  
    </menu> 
    <menu id="b"> 
     <menuItem keyID="0"> 
     <command>test</command> 
     </menuItem> 
     <menuItem keyID="0"> 
     <command>test</command> 
     </menuItem>  
    </menu>  
    <ecs> 
     <areas> 
     <area longitudeFrom="20.35" longitudeTo="20.37" /> 
     <area longitudeFrom="20.44" longitudeTo="20.46" /> 
     <area longitudeFrom="20.22" longitudeTo="20.25" /> 
     </areas> 
    </ecs> 
</root> 
+0

XDocument.Load抱怨根元素是缺少 現在我已經加了根元素,但現在它說:[System.ArgumentException] = {「非空白字符不能添加內容。」} 而實際上包含字符串XML是太大了,所以我只是在這裏發佈了一個示例。 反正是有,我可以帶或不帶根元素解析呢? – Shahid 2010-02-03 15:45:12

+0

關於新的錯誤,你肯定有是XML之外沒有文字和XML是有效的。關於讀取XML沒有根此言,我不認爲這是可能 – IordanTanev 2010-02-03 16:02:00

+0

@lordanTanev感謝。添加一個根元素XElement.parse後工作! – Shahid 2010-02-03 16:45:25