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);
System.Xml.XmlNode test = root.SelectSingleNode("//Version");
Console.WriteLine(test.InnerText);test = root.SelectSingleNode("//Name");
Console.WriteLine(test.InnerText);
解决方案 »
- vs2008+c#中用treeview时,怎样使树结点的折叠加号变大一点,用于触摸屏方便点击?
- c++转c#问题
- [在线求解]System.Data.SqlClient.SqlBulkCopy成员类无法找到
- c#调用C语言写的函数,给详细代码,谢谢
- C# WINFORM中如何调用另一个窗体中的公共变量?
- 如何设置TabControl背景为透明
- c#.net 加密问题
- 請指點,那里有C#的數據庫系統的源代碼.
- 做过数据备份的朋友请帮忙
- 关于开发一个类似windows下notepad中find对话框的问题
- 在C#中开发ASP.NET可以用关键字WithEvents和Handle吗??
- C#入门问题!!!!
高效查找,但不能Write.
测试程序如下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();
1、当XMl文件比较小的时候(KB级别),两者运行时间几乎没有差别
2、XML文件较大(MB级别),按照上述代码测试,使用Xpath快些
3、XML文件较大时,同时调换上述代码,先执行test2再执行test1,结果仍然是Xpath快些。
4、测试有局限性,本人所用测试代码并没有仔细分析原理,所以可能不是很规范。还有使用的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();
}
}
}