zoukankan      html  css  js  c++  java
  • C# Xml 操作

            static void Main(string[] args)
            {
                string Xml = "<xml><message>ok</message><nu>8865014*****</nu><ischeck>1</ischeck><com>tiantian</com><condition>F00</condition><status>1</status><state>3</state><data><time>2013-11-18 13:09:23</time><context>已签收,签收人是【本人】</context></data><data><time>2013-11-17 20:06:16</time><context>【北京昌平回龙观】正在进行【货件留仓】扫描</context></data><data><time>2013-11-17 04:36:00</time><context>快件已到达【北京昌平回龙观】扫描员是【01046】上一站是【北京集散】</context></data><data><time>2013-11-17 03:32:39</time><context>由【北京集散】发往【北京昌平回龙观】</context></data><data><time>2013-11-16 15:58:26</time><context>快件已到达【北京集散】扫描员是【广州物流车】上一站是【广州】</context></data><data><time>2013-11-13 04:08:28</time><context>由【广州】发往【北京集散】</context></data><data><time>2013-11-13 02:43:23</time><context>由【广州】发往【北京集散】</context></data><data><time>2013-11-13 02:43:22</time><context>【广州】正在进行【装袋】扫描</context></data><data><time>2013-11-13 00:54:56</time><context>快件已到达【广州】扫描员是【许文改】上一站是【广州芳村西�】</context></data><data><time>2013-11-12 23:00:42</time><context>由【广州芳村西�】发往【广州】</context></data><data><time>2013-11-12 23:00:41</time><context>【广州芳村西�】正在进行【装袋】扫描</context></data></xml>";
    
                XmlDocument xmlDoc = new XmlDocument();
                xmlDoc.LoadXml(Xml);
    
                XPathNavigator pathNav = xmlDoc.CreateNavigator();
                XPathExpression pathExp = pathNav.Compile("/xml/data");
                //排序
                pathExp.AddSort("time", XmlSortOrder.Ascending, XmlCaseOrder.None, null, XmlDataType.Text);
                XPathNodeIterator pathNode = pathNav.Select(pathExp);
    
                /*在添加排序的结果之前我们首先需要移除data的数据,这是我们不需要的
                  得到跟,因为xml格式的问题,这个里面有N个data节点,如果需要完全删除data则需要RemoveChild
                  因为removeall() 只会移除data内的所有元素 节点,最后保留下<data></data>并不能删除整个data*/
    
                //获取data节点的list
                XmlNodeList xmlNodeList = xmlDoc.SelectNodes("/xml/data");
                for (int i = 0; i < xmlNodeList.Count; i++)
                    xmlDoc.SelectSingleNode("/xml").RemoveChild(xmlNodeList.Item(i));
    
                //XmlNode xmlNode = xmlDoc.SelectSingleNode("/xml/data[time="2013-11-17 04:36:00"]"); //查找还能这样
    
                while (pathNode.MoveNext())
                    xmlDoc.SelectSingleNode("/xml").InnerXml += pathNode.Current.OuterXml; //在xml节点内循环添加排序后的结果
    
                Console.WriteLine(xmlDoc.OuterXml);
                Console.Read();
            }

    using system.xml;

    using system.xml.xpath;

  • 相关阅读:
    BZOJ-1497 最大获利
    POJ-3680 Intervals & NOI 2008 志愿者招募 费用流
    CodeForces 663E Binary Table
    南昌区域赛-G Eating Plan
    HDU-5909 Tree Cutting
    BZOJ-4589 Hard Nim
    UVA-12633 Super Rooks on Chessboard
    SPOJ-TSUM Triple Sums
    HDU-4609 3-idiots
    Kattis-aplusb A+B problem
  • 原文地址:https://www.cnblogs.com/buyinji/p/3429664.html
Copyright © 2011-2022 走看看