none
如何对xml排序取出结果 RRS feed

  • 问题

  • 如何对xml排序取出结果
    xml格式如下:

    <Toolkit>
    <Table NAME="SM_SERVICE">
    <Field NAME="SERVICE_ID">
    <Length>10</Length>
    <List Sort="10"></List>
    </Field>
    <Field NAME="SERVICE_NAME">
    <Length>10</Length>
    <List Sort="20"></List>
    </Field>
    <Field NAME="SERVICE_TYPE">
    <Length>2</Length>
    <List Sort="5"></List>
    </Field>
    </Table>
    </Toolkit>

    我希望循环输出所有的<Field>,并且是按照List/@Sort排序,即上面的结果应该是
    <Field NAME="SERVICE_TYPE">
    <Field NAME="SERVICE_ID">
    <Field NAME="SERVICE_NAME">

     XPathNavigator nav = fDataXml.Xml.CreateNavigator();

     XPathExpression exp = nav.Compile("/Toolkit/Table/Field/List");

     exp.AddSort("@Sort", XmlSortOrder.Ascending, XmlCaseOrder.None, "", XmlDataType.Number);
     XPathNodeIterator iter = nav.Select(exp);
     while (iter.MoveNext())
     {
        //循环处理
     } 

    现在上面的代码能正常运行,但是循环处理这段没有执行,即iter.Count=0

    这段应该怎么写才对?我网上搜索不到相关的解决方法。

    2013年11月29日 1:22

全部回复