使用for循环使用XDocument和可变数量的xelement创建XML

本文关键字:xelement XML 创建 循环 for XDocument 使用 | 更新日期: 2023-09-27 18:12:42

我需要根据e的值(每次都不同)向XML文档添加可变数量的xelement。我想我需要做一些类似于我下面的东西,但下面的代码给了我6个错误。这些都是:

  • 只有赋值、call、increment、递减和new对象表达式可以用作语句x 2
  • 无效表达式术语'for'/')'/')'
  • ;将

    int e = 3;
    doc.Root.Add(new XElement(ns + "LineItemList",
    for(int i = 0; i <= e; i++)
    {
        new XElement("ItemNumber", i.ToString());
    }
    ));
    

我做错了什么?

把我的问题另一种方式,我的理解是,有我的LineItem元素在我的LineItemListelement,我需要把我的LineItem的声明内LineItemList。

如果有人能告诉我如何显式地打开和关闭元素,而不是隐式地打开和关闭元素,这将大有帮助。

使用for循环使用XDocument和可变数量的xelement创建XML

试试这个:

int e = 3;
XDocument doc = new XDocument(
          new XElement(ns + "LineItemList",
               Enumerable.Range(0, e).Select(i => new XElement("ItemNumber", i))
          ));

我想你要找的是:

int e = 3;
XElement lineElement = new XElement(ns + "LineItemList");
doc.Root.Add(lineElement);
for(int i = 0; i <= e; i++) 
{ 
  XElement itemElement = new XElement("ItemNumber", i.ToString());
  lineElement.Add(itemElement)
}

不能在方法调用中使用for循环。

也许你想这样做:

for(int i = 0; i <= e; i++) { 
    XElement element = new XElement("ItemNumber", i.ToString()); 
    doc.Root.Add(element);
}

我没有测试这段代码