现有一部分XML文件如下:
    <Menu deleteAll="true">
      <MenuItem id="01" optType="1" order="8" menuName="问题反馈" url="…" />
      <MenuItem id="02" optType="1" order="2" menuName="访问日志" url="…" />
      <MenuItem id="03" optType="1" order="5" menuName="版本信息" url="…" />
    </Menu>我想按照节点MenuItem 的属性order的值的大小,从小到大依次读取节点Menu 下的所有子节点?请高手指教!!!

解决方案 »

  1.   

    可以按order排序后读取,xml操作好像.net框架有带相应的类
      

  2.   

    1\一次全读出后在排序.(推荐) 可以读到二维数组里,也可根据需要存储其他对象中,例如DataSet2\否则,需要多次重复读数据,(数据少可忽略不计性能,但代码可能会很"丢人")看你XML象是存储菜单~总之需要全读出,所以推荐第一种方法,如果需要对文件存储排序,用方法1排序后,直接保存到文件
      

  3.   

    XPathDocument doc=new XPathDocument("d:/test.xml");
    XPathNavigator nav=doc.CreateNavigator();
    XPathExpression exp=nav.Compile("//MenuItem");
    exp.AddSort("@order",XmlSortOrder.Ascending,XmlCaseOrder.None,"",XmlDataType.Number);
    XPathNodeIterator itr=nav.Select(exp);
    while(itr.MoveNext())
    {
    Console.WriteLine(itr.Current.GetAttribute("order",""));
    }