[英]Xml.Linq: Reversing child-nodes of a XML
我根據用戶輸入在運行時創建了以下 XML 文件。
<Parent>
<X1>1</X1>
<X2>
<Y1>
<Rank>4</Rank>
</Y1>
<Y1>
<Rank>3</Rank>
</Y1>
<Y1>
<Rank>2</Rank>
</Y1>
<Y1>
<Rank>1</Rank>
</Y1>
</X2>
</Parent>
現在,我想以<Rank>
升序排列的方式反轉子節點。 我想要以下輸出
<Parent>
<X1>1</X1>
<X2>
<Y1>
<Rank>1</Rank>
</Y1>
<Y1>
<Rank>2</Rank>
</Y1>
<Y1>
<Rank>3</Rank>
</Y1>
<Y1>
<Rank>4</Rank>
</Y1>
</X2>
</Parent>
創建此問題是因為我使用的是 AddFirst 方法。 我沒有找到任何與 AddFirst 完全相反的方法。
您可以使用反向
例子:
static void Main(string[] args)
{
XElement srcTree = new XElement("Parent",
new XElement("X1", 1),
new XElement("X2",
new XElement("Y1", new XElement("Rank", 4)),
new XElement("Y1", new XElement("Rank", 3)),
new XElement("Y1", new XElement("Rank", 2)),
new XElement("Y1", new XElement("Rank", 1)))
);
var reverseList = srcTree.Elements("X2").Descendants("Y1").InDocumentOrder().Reverse().ToList();
srcTree.Element("X2").Remove();
srcTree.Add(new XElement("X2", reverseList));
Console.WriteLine(srcTree);
Console.ReadLine();
}
它會給你想要的結果:
<Parent>
<X1>1</X1>
<X2>
<Y1>
<Rank>1</Rank>
</Y1>
<Y1>
<Rank>2</Rank>
</Y1>
<Y1>
<Rank>3</Rank>
</Y1>
<Y1>
<Rank>4</Rank>
</Y1>
</X2>
</Parent>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.