首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > XML SOAP >

怎么對 xml 排序后﹐取其中的指定位置范圍的節點

2012-02-06 
如何對 xml 排序后﹐取其中的指定位置范圍的節點如何對 xml 排序后﹐取其中的指定位置范圍的節點﹐比如以下xm

如何對 xml 排序后﹐取其中的指定位置范圍的節點
如何對 xml 排序后﹐取其中的指定位置范圍的節點﹐比如以下xml,
<root><row><aaa>111</aaa><bbb>b1</bbb></row>
  <row><aaa>bbb</aaa><bbb>b2</bbb></row>
  <row><aaa>333</aaa><bbb>b3</bbb></row>
  <row><aaa>aaa</aaa><bbb>b4</bbb></row>
  <row><aaa>222</aaa><bbb>b5</bbb></row>
  <row><aaa>ddd</aaa><bbb>b6</bbb></row>
  <row><aaa>ccc</aaa><bbb>b7</bbb></row>
  ......(row節點數不固定﹐可能有几百或几千)
</root>
我需要按 aaa 排序后﹐取得第3-5個節點﹐結果如下﹕
<root><row><aaa>111</aaa><bbb>b1</bbb></row>
  <row><aaa>222</aaa><bbb>b5</bbb></row>
  <row><aaa>333</aaa><bbb>b3</bbb></row>
  <row><aaa>aaa</aaa><bbb>b4</bbb></row>
  <row><aaa>bbb</aaa><bbb>b2</bbb></row>
  <row><aaa>ccc</aaa><bbb>b7</bbb></row>
  <row><aaa>ddd</aaa><bbb>b6</bbb></row>
</root>


[解决办法]

C# code
        string xml = @"<root>  <row><aaa>111</aaa><bbb>b1</bbb></row>  <row><aaa>bbb</aaa><bbb>b2</bbb></row>  <row><aaa>333</aaa><bbb>b3</bbb></row>  <row><aaa>aaa</aaa><bbb>b4</bbb></row>  <row><aaa>222</aaa><bbb>b5</bbb></row>  <row><aaa>ddd</aaa><bbb>b6</bbb></row>  <row><aaa>ccc</aaa><bbb>b7</bbb></row></root>";        DataSet ds = new DataSet();        Stream s = new MemoryStream(System.Text.Encoding.Default.GetBytes(xml));        ds.ReadXml(s);        DataSet dt = ds.Clone();        ds.Tables[0].Select().OrderBy(r => r["aaa"]).Skip(2).Take(3).ToList().ForEach(n => dt.Tables[0].ImportRow(n));        Stream ns = new MemoryStream();        dt.WriteXml(ns);        ns.Seek(0, SeekOrigin.Begin);        XmlDocument doc = new XmlDocument();        doc.Load(ns);        Response.Write(doc.OuterXml); 

热点排行