【问题标题】:CSharp How to generate/parse multiple XElements from a stringCSharp如何从字符串生成/解析多个XElements
【发布时间】:2010-02-03 15:25:07
【问题描述】:

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

【问题讨论】:

  • 错误是.....?

标签: xml string add xelement


【解决方案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>

【讨论】:

  • XDocument.Load 抱怨缺少根元素我现在添加了一个根元素,但现在它说 [System.ArgumentException] = {"非空白字符不能添加到内容中。"} 实际上包含 xml 的字符串太大,所以我在这里发布了一个示例。无论如何我可以在有或没有根元素的情况下解析它吗?
  • 关于新错误,您确定 xml 之外没有文本并且 xml 有效。关于在没有root的情况下阅读xml的评论我认为这是不可能的
猜你喜欢
  • 2021-02-10
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 2021-10-21
相关资源
最近更新 更多