Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq到XML,强制在已经存在的标记之间使用结束标记和开始标记_Xml_Linq - Fatal编程技术网

Linq到XML,强制在已经存在的标记之间使用结束标记和开始标记

Linq到XML,强制在已经存在的标记之间使用结束标记和开始标记,xml,linq,Xml,Linq,例如,有一个标签 <book> <firstHalf> </firstHalf> <secondHalf> </second half> </book> 我的要求是我需要将上半场和下半场分开,如下所示 <book> <firstHalf> </firstHalf> </book> <book> <secondHalf> </seco

例如,有一个标签

<book>
<firstHalf>  </firstHalf>

<secondHalf>   </second half>
</book>

我的要求是我需要将上半场和下半场分开,如下所示

<book>
<firstHalf>  </firstHalf>
</book>
<book>
<secondHalf> </second half>
</book>

所以首先我需要添加一个新的结束书标签,然后是开始书标签!p-使用linq

我不知道怎么做,任何帮助都将不胜感激

var xmlStr=@”
";
var doc=XDocument.Parse(xmlStr);
//找到所有的书
var books=doc.substands(“book”).ToList();
//另外,需要ToList()因为我们正在修改结构
foreach(账簿中的var账簿)
{
//获取所有“额外”元素
var extralelements=book.Elements().Skip(1.ToList();
if(extralelements.Any())
{
//从当前书本中删除额外的元素
extraElements.Remove();
//使用额外元素在此书之后创建新书
AddAfterSelf(extralelements.Select(e=>newxelement(“book”,e)));
}
}
收益率:


它不是有效的XML。
secondHalf
应该是
secondHalf