C# 在C中生成特定的xml语法#

C# 在C中生成特定的xml语法#,c#,xml,C#,Xml,我使用dataGridView中显示的一些数据库信息生成一个xml文件,但我不知道如何获取所需的xml语法 我所拥有的是: <Orders> <NewOrders> <Order> <OrderNbr>xxxxxxx</OrderNbr> <Amount>xxx</Amount> </Order> </NewOrders> </Orde

我使用dataGridView中显示的一些数据库信息生成一个xml文件,但我不知道如何获取所需的xml语法

我所拥有的是:

<Orders>
  <NewOrders>
    <Order>
      <OrderNbr>xxxxxxx</OrderNbr>
      <Amount>xxx</Amount>
    </Order>
  </NewOrders>
</Orders>
<Orders>
  <NewOrders>
    <Order>
      <OrderNbr>yyyyyy</OrderNbr>
      <Amount>yyy</Amount>
    </Order>
  </NewOrders>
</Orders>

xxxxxxx
xxx
yyyyyy
yyy
我想:

<Orders>
  <NewOrders>
    <Order>
      <OrderNbr>xxxxxxx</OrderNbr>
      <Amount>xxx</Amount>
    </Order>
    <Order>
      <OrderNbr>yyyyyy</OrderNbr>
      <Amount>yyy</Amount>
    </Order>
  </NewOrders>
</Orders>

xxxxxxx
xxx
yyyyyy
yyy
我按如下方式生成xml文件:

private void buttonXML_Click(object sender, EventArgs e)
{
    if (dataGridView1.Rows.Count > 0)
    {
        if (!(File.Exists(path)))
        {
            TextWriter tw = new StreamWriter(path);
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                tw.WriteLine(
                new XElement("Orders",
                    new XElement("NewOrders",
                        new XElement("Order",
                            new XElement("OrderNbr", dataGridView1.Rows[i].Cells[3].Value),
                            new XElement("Amount", Convert.ToInt32(dataGridView1.Rows[i].Cells[5].Value)),
                            )
                        )
                    )
               );
            }
            tw.Close();
        }
    }
}    
private void按钮xml\u单击(对象发送者,事件参数e)
{
如果(dataGridView1.Rows.Count>0)
{
如果(!(File.Exists(path)))
{
TextWriter tw=新的StreamWriter(路径);
对于(int i=0;i

我尝试使用StringBuilder,但没有达到我想要的效果。

我认为这可以满足您的要求:

var xElement = new XElement("Orders",
new XElement("NewOrders")
);

for (int i = 0; i < 2; i++)
{
    xElement
    .Elements()
    .FirstOrDefault(e => e.Name == "NewOrders")
    .Add(
        new XElement("Order",
            new XElement("OrderNumber", "ABC"),
            new XElement("Amount", 5.55)
        )
    );
}
var-xElement=new-xElement(“订单”,
新订单(“新订单”)
);
对于(int i=0;i<2;i++)
{
希莱门特
.要素()
.FirstOrDefault(e=>e.Name==“NewOrders”)
.添加(
新XElement(“订单”,
新XElement(“订单号”、“ABC”),
新XElement(“金额”,5.55)
)
);
}

我认为这将满足您的需求:

var xElement = new XElement("Orders",
new XElement("NewOrders")
);

for (int i = 0; i < 2; i++)
{
    xElement
    .Elements()
    .FirstOrDefault(e => e.Name == "NewOrders")
    .Add(
        new XElement("Order",
            new XElement("OrderNumber", "ABC"),
            new XElement("Amount", 5.55)
        )
    );
}
var-xElement=new-xElement(“订单”,
新订单(“新订单”)
);
对于(int i=0;i<2;i++)
{
希莱门特
.要素()
.FirstOrDefault(e=>e.Name==“NewOrders”)
.添加(
新XElement(“订单”,
新XElement(“订单号”、“ABC”),
新XElement(“金额”,5.55)
)
);
}

在循环外部创建
订单
新订单
。然后将其他内容添加到在循环外部、内部创建的元素中。在循环外部创建
Orders
NewOrders
。然后将其他内容添加到在循环外部、内部创建的元素中。