我有这些输入元素:
var codes = GetCodes(yourData).ToList();
如何将num个元素之间的元素转换为新元素,所以最后我有了这个:
<Entry>
<pos STYLE="NUM">1</pos >
<tran></tran>
<pos STYLE="NUM">2</pos >
<example></example>
<pos STYLE="NUM">3</pos >
<elem></elem>
</Entry>
<Entry>
...
</Entry>
编辑:: sofar我加载xml文档迭代所有元素并做一些与此问题无关的格式
<Entry>
<body>
<tran></tran>
</body>
<body>
<example></example>
</body>
<body>
<elem></elem>
</body>
</Entry>
答案 0 :(得分:0)
可以将其视为重组入口元素内容的分组问题:
XDocument doc = XDocument.Load("input.xml");
foreach (XElement entry in doc.Descendants("Entry").ToList())
{
foreach (var group in entry.Elements().Except(entry.Elements("pos")).GroupBy(child => child.ElementsBeforeSelf("pos").Last()))
{
group.Remove();
group.Key.ReplaceWith(new XElement("body", group));
}
}
doc.Save("output.xml");