朋友帮忙看下。迷糊了
Console.WriteLine(doc.SelectNodes("//url").Count);
//返回0, xpath没有写错呀。应该返回 4 呀            XmlDocument doc = new XmlDocument();
            doc.Load(@"G:\资料\Net\Chem169\Project\Web\sitemap.xml");
            Console.WriteLine(doc.SelectNodes("//url").Count);<?xml version="1.0" encoding="utf-8"?>
    <urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
      <url>
        <loc>http://www.hq.com/</loc>
        <lastmod>2011-02-11</lastmod>
        <priority>1.0</priority>
      </url>
      <url>
        <loc>http://www.hq.com/sitemap.html</loc>
        <lastmod>2011-02-11</lastmod>
        <priority>0.8</priority>
      </url>
      <url>
        <loc>http://www.hq.com/a_Stock/</loc>
        <lastmod>2011-02-11</lastmod>
        <priority>0.7</priority>
      </url>
      <url>
        <loc>http://www.hq.com/a/</loc>
        <lastmod>2011-02-11</lastmod>
        <priority>0.5</priority>
      </url>
   </urlset>

解决方案 »

  1.   


      XmlDocument xdoc = new XmlDocument();
                    xdoc.Load(path);                XmlNode xmlInfo1 = xdoc.SelectSingleNode("urlset");
    XmlNode xmlInfo = xmlInfo1 .SelectSingleNode("url");
     foreach (XmlNode xe in xmlInfo.ChildNodes)
                    {
    xe.ChildNodes[0]代表loc
    xe.ChildNodes[1]代表lastmod
    }
      

  2.   


    XmlDocument xdoc = new XmlDocument();
                    xdoc.Load(path);                XmlNode xmlInfo = xdoc.SelectSingleNode("urlset");
     foreach (XmlNode xe in xmlInfo.ChildNodes)
                    {
    xe.ChildNodes[0]代表loc
    xe.ChildNodes[1]代表lastmod
    ……
    }刚才错了
      

  3.   

    是哦,从xpath上来看没有错的。换其他方式试下呢?Console.WriteLine(doc.SelectNodes("/urlset/url").Count);
      

  4.   

    xmlns="http://www.google.com/schemas/sitemap/0.84" 去掉
      

  5.   

    XmlDocument xmldoc = new XmlDocument(); 
                xmldoc.Load(@"c:\m.xml"); 
                XmlNamespaceManager manager = new XmlNamespaceManager(xmldoc.NameTable); 
                manager.AddNamespace("xspf", "http://www.google.com/schemas/sitemap/0.84");
                int i = xmldoc.SelectNodes("//xspf:url",manager).Count;
      

  6.   

    xmlDoc.DocumentElement.SelectNodes("url")
      

  7.   

    楼上回答正确,有命名空间的xml文档,查询时必须加上命名空间,MSDN上面有这方面的例子:
     <bookstore xmlns="http://www.lucernepublishing.com">
      <book>
        <title>Pride And Prejudice</title>
      </book>
     </bookstore> XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable);
     nsmgr.AddNamespace("ab", "http://www.lucernepublishing.com");
     XmlNodeList nodelist = doc.SelectNodes("//ab:book", nsmgr);