如果用XML遍历节点,效率应该很低,也比较麻烦,在网上找的还有DataSet,DataTable的方案。大家出出主意,帮小妹想想方案。谢谢了,我下周结贴。
如果有例子,我会加分的。我Xml只会基础的操作。不知道C#3.5有没有直接Find节点,比较节点的类库。

解决方案 »

  1.   

     我猜就是有find之类的方法,实质应该也是遍历,效率也不会提高多少额·
      

  2.   

    会基础的就可以,xml如果不复杂可以读到dataSet里,然后对dataTable进行查询,如dataTable.select('')效率应该可以满意,若比较复杂,还是老实用xpath吧。
      

  3.   

    需求不明确.
    说个思路.把XML读取到DataSet里面.从DataSet里查找可否?这样效率快,但占资源.
      

  4.   

    我现在还是选择了用XML循环遍历,XML文件比较复杂,只能选择用foreach循环遍历一个文件,然后再根据NodeName用XPath到另一个文件去找对应的Node,然后比较是删除了,还是修改了。不过添加的暂时还没有思路。哪位大侠做过啊,帮帮忙了!
      

  5.   

    删除 和 追加 相似 一个RemoveChild,一个AppendChild
      

  6.   

    建议,使用XPath来处理,会对遍历效率有所提高,因为是先编译,后查找,比遍历的方法要优化一点。-----------------------------------------------------------------------------------------
    楼主给点分,1分不少,10分不多,拜谢!
    楼主给点分,1分不少,10分不多,拜谢!
    楼主给点分,1分不少,10分不多,拜谢!
    楼主给点分,1分不少,10分不多,拜谢!
    楼主给点分,1分不少,10分不多,拜谢!
    楼主给点分,1分不少,10分不多,拜谢!
      

  7.   

    "books.xml" :
    <?xml version="1.0" encoding="ISO-8859-1"?><bookstore><book category="COOKING">
      <title lang="en">Everyday Italian</title>
      <author>Giada De Laurentiis</author>
      <year>2005</year>
      <price>30.00</price>
    </book><book category="CHILDREN">
      <title lang="en">Harry Potter</title>
      <author>J K. Rowling</author>
      <year>2005</year>
      <price>29.99</price>
    </book><book category="WEB">
      <title lang="en">XQuery Kick Start</title>
      <author>James McGovern</author>
      <author>Per Bothner</author>
      <author>Kurt Cagle</author>
      <author>James Linn</author>
      <author>Vaidyanathan Nagarajan</author>
      <year>2003</year>
      <price>49.99</price>
    </book><book category="WEB">
      <title lang="en">Learning XML</title>
      <author>Erik T. Ray</author>
      <year>2003</year>
      <price>39.95</price>
    </book></bookstore>节点选取
    set xmlDoc=CreateObject("Microsoft.XMLDOM")
    xmlDoc.async="false"
    xmlDoc.load("books.xml")xmlDoc.selectNodes(路径表达式)选取价格高于 35 的 price 价格
    xmlDoc.selectNodes("/bookstore/book[price>35]/price")选取价格高于 35 的 title 节点
    xmlDoc.selectNodes("/bookstore/book[price>35]/title")
      

  8.   

    只要是查找 无外乎 遍历 和 对应 
    一个是数组 一个是 字典 你要想完全脱离,只要考虑别用xml。 换种更合适的存储结构。不是说xml就是神,他只在扩展性上,性能真的不怎么地!
      

  9.   

    HOW TO:使用 Visual C# .NET 通过 XPath 表达式查询 XML:http://support.microsoft.com/kb/308333/zh-cnblog:http://hi.baidu.com/mycourt/blog/item/b7189c4b761f072a08f7ef65.html
    http://www.blogjava.net/Rookie/archive/2008/01/10/174399.html
      

  10.   

    XmlDocument doc = new XmlDocument();
    doc.Load(LoadPath);
    XmlNode xn1 = doc.SelectSingleNode("root//address");
    这样不就直接把address的节点读出来了吗。