C# 更改XML的格式

C# 更改XML的格式,c#,xml,xmldocument,xslt,C#,Xml,Xmldocument,Xslt,我有以下Xml: <Root> <Username> <string>Fred</string> <string>John</string> </Username> </Root> 弗莱德 约翰 我需要的是如下格式的Xml: <Root> <Username>Fred</Username> <Username&g

我有以下Xml:

<Root>
  <Username>
    <string>Fred</string>
    <string>John</string>
  </Username>
</Root>

弗莱德
约翰
我需要的是如下格式的Xml:

 <Root>
    <Username>Fred</Username>
    <Username>John</Username>
 </Root>

弗莱德
约翰

有没有办法做到这一点?

将此设置在您的财产之上:

[XmlArray(“用户名”)]

Linq到XML:

using System.Linq;
using System.Xml.Linq;

var indoc = XDocument.Load("c:\\test.xml");   
var outdoc = new XDocument(
              new XElement("Root", 
                indoc.Descendants("Root")
                     .Descendants("Username")
                     .Elements()
                     .Select(n => n.Value)
                     .Select(i => new XElement("Username", i))));

// TODO: Save doc using doc.WriteTo(xmlWriter) to the file

您想创建格式不正确的xml吗?当然,是的,您可以这样做……您的第二个xml已经存在。我猜你不想在那里。对不起,我更新了,错误的复制粘贴…我需要在c#中执行,我收到第一种格式的文件,但我的代码只处理第二种格式的代码…我怀疑他在使用序列化,因为通过序列化你会得到那些块。用任何其他方法(至少我知道),他应该能够选择他想要的名字。他说他收到了一个文件,所以我不这么认为。