在单个记录中连接XML字段

时间:2016-01-05 09:01:38

标签: c# xml concatenation record

我是C#中使用XML的新手。我需要在一个记录中连接多个字段。 例如,我有一个包含多个记录的XML:

输入

 <Students>---------------------->1st Record
      <Validate>True</Validate>
      <StudentName>Joe</StudentName>
      <ID>1</ID>
      <BookName>C#</BookName>
 </Students>
 <Students>----------------------->2nd Record
      <StudentName>Van</StudentName>
      <ID>2</ID>
      <BookName>Java</BookName>
 </Students>

字段<validate>只会出现一次,预期的输出是学生下的第二条记录,即StudentName,ID,BookName应该在第一条记录<Students>标记下

输出

 <Students>------------------->Both record should be added to one Record
      <Validate>True</Validate>
      <StudentName>Joe</StudentName>
      <ID>1</ID>
      <BookName>C#</BookName>
      <StudentName>Van</StudentName>
      <ID>2</ID>
      <BookName>Java</BookName>
 </Students>

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用LINQ to XML。您解析XML,获取每个Students元素中的所有子元素,并将它们放入一个新的Students元素中:

var doc = XDocument.Parse(xml);

var children = doc.Descendants("Students")
    .Elements();

var newStudents = new XElement("Students", children);

有关工作示例,请参阅this fiddle