System.Xml.XmlElement root = xmlDocument.DocumentElement;
System.Xml.XmlNode test = root.SelectSingleNode("//Version");
Console.WriteLine(test.InnerText);test = root.SelectSingleNode("//Name");
Console.WriteLine(test.InnerText);

解决方案 »

  1.   

    用selectsinglenode这个方法我知道,不过两个哪个效率高呢??
      

  2.   

    System.Xml.Xpath
    高效查找,但不能Write.
      

  3.   

    个人应该是使用XPath查找的速度快,做了一个测试。
    测试程序如下System.Xml.XmlDocument xmlDocument = new System.Xml.XmlDocument();
    xmlDocument.Load("d:\\Data.xml");//example
    //test1
    System.DateTime d1now = System.DateTime.Now;
    System.Xml.XmlElement root = xmlDocument.DocumentElement;
    System.Xml.XmlNode test = root.SelectSingleNode("//Version");
    s = test.InnerText;
    test = root.SelectSingleNode("//Name");
    s = test.InnerText;
    System.TimeSpan t1 =  System.DateTime.Now - d1now;
    Console.WriteLine(t1.Ticks.ToString());
    //test2
    System.DateTime d2now = System.DateTime.Now;
    s = xmlDocument.GetElementsByTagName("Version")[0].InnerText;
    s = xmlDocument.GetElementsByTagName("Name")[0].InnerText;
    System.TimeSpan t2 =System.DateTime.Now - d2now;
    Console.WriteLine(t2.Ticks.ToString());

    Console.ReadLine();
      

  4.   

    测试结果,
    1、当XMl文件比较小的时候(KB级别),两者运行时间几乎没有差别
    2、XML文件较大(MB级别),按照上述代码测试,使用Xpath快些
    3、XML文件较大时,同时调换上述代码,先执行test2再执行test1,结果仍然是Xpath快些。
    4、测试有局限性,本人所用测试代码并没有仔细分析原理,所以可能不是很规范。还有使用的XML文件也可能不具有代表性搂主如果有时间再看一下原理,从原理上得出比较结论
      

  5.   

    //帮楼主测试了一下,你可以加载大的Xml文档试一下
    using System;
    using System.IO;
    using System.Text;
    using System.Diagnostics;
    using System.Threading;
    using System.Collections;
    using System.Data;
    using System.Xml;
    using System.Management;
    using System.Net;
    namespace ZZ
    {
    class ZZConsole
    {
    [STAThread]
    static void Main(string[] args)
    {
    string strXml="<?xml version=\"1.0\"?>"
    +"<Data>"
    +"<Head>"
    +"<Nodeid>1111</Nodeid>"
    +"<Subid>2222</Subid>"
    +"<Version>2004</Version>"
    +"<Date>20040302</Date>"
    +"<Time>101500</Time>"
    +"</Head>"
    +"<Body>"
    +"<Code>01</Code>"
    +"<Name>深圳</Name>"
    +"<IdType>0</IdType>"
    +"<Idno>110258740824082</Idno>"
    +"</Body>"
    +"</Data>";
    XmlDocument doc = new XmlDocument();
    doc.LoadXml(strXml);
    string vv;
    int start;
    int end; start = Environment.TickCount;
                vv = doc.GetElementsByTagName("Version")[0].InnerText;
    Console.WriteLine(vv);
    end = Environment.TickCount;
    Console.WriteLine("经历时间:"+(end-start).ToString()); start = Environment.TickCount;
    vv = doc.SelectNodes("//Version")[0].InnerText;
    Console.WriteLine(vv);
    end = Environment.TickCount;
    Console.WriteLine("经历时间:"+(end-start).ToString()); Console.ReadLine();
    }

    }

    }