簡體   English   中英

動態 XML 排序使用 LINQ

[英]Dynamic XML Sorting using LINQ

如何使用具有以下優先級的 LINQ 對動態 XML 進行排序:

  1. 節點名稱排序
  2. 節點值排序
  3. 屬性名排序
  4. 屬性值排序

按節點名稱排序:

var doc = XDocument.Parse("<data><carrot /><apple /><orange /></data>");
var sortedByNames = doc.Root.Elements().OrderBy(e => e.Name.ToString());

foreach(var e in sortedByNames)
    Console.WriteLine (e.Name);

按節點值排序:

var doc = XDocument.Parse("<data><thing>carrot</thing><thing>apple</thing><thing>orange</thing></data>");
var sortedByValue = doc.Root.Elements().OrderBy(e => e.Value.ToString());

foreach(var e in sortedByValue)
    Console.WriteLine (e.Value);

這一切都遵循相同的模式...您根據您在傳遞給OrderBy方法的選擇器 function 中定義的標准進行排序。

var data = from item in xmldoc.Descendants("content")
           orderby (string)item.Element("title")      // by node value
           //orderby item.Attribute("something")      // by attribute value                         
           select new 
           {
               Title = (string)item.Element("title"),
           };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM