Xml CSharp如何从字符串生成/解析多个元素

Xml CSharp如何从字符串生成/解析多个元素,xml,string,add,xelement,Xml,String,Add,Xelement,我有一个XElement,需要从字符串中添加更多元素。字符串中包含我需要解析的多个xml元素。我尝试了XDocument.Load和XElement.Parse,但都出现了错误。文件内容如下: <menu id="a"> <menuItem keyID="0"> <command>test</command> </menuItem> <menuItem keyID="0"> <command

我有一个XElement,需要从字符串中添加更多元素。字符串中包含我需要解析的多个xml元素。我尝试了XDocument.Load和XElement.Parse,但都出现了错误。文件内容如下:

<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的最佳方法是什么?

如果这是整个文件,则为正常的
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>

测试
测试
测试
测试

错误是……?XDocument.Load抱怨根元素丢失,我现在添加了一个根元素,但现在它说[System.ArgumentException]={“无法将非空白字符添加到内容。”}而且实际上包含xml的字符串太大,所以我在这里发布了一个示例。我是否可以使用根元素或不使用根元素对其进行解析?关于新错误,您确定xml之外没有文本,并且xml有效吗。关于不使用root读取xml,我认为这是不可能的