XmlDocument xml = new XmlDocument();
            xml.Load("at.xml");
            XmlNamespaceManager xnm = new XmlNamespaceManager(xml.NameTable);
            xnm.AddNamespace("x", "http://temp.org/");
            string xpath = "//x:string";
            XmlNodeList nodes = xml.SelectNodes(xpath, xnm);
            foreach (XmlNode item in nodes)
            {
                string title = item.InnerText;                            }

解决方案 »

  1.   

    using System.Linq;string str = "<?xml version='1.0' encoding='utf-8'?><string xmlns='http://temp.org/'>20141225153615</string>";
                XElement element = XElement.Parse(str);
                var value = element.Value;
      

  2.   

    我就是问 怎么 XmlNode xn = xdoc.SelectSingleNode("//string"); 这个查出来XN是Null,但是以下方法就可以
    XmlNodeList elemList = xdoc.GetElementsByTagName("string");
     foreach (XmlNode xn in elemList)
              {
              _Return =  xn.InnerText;
           }
      

  3.   

    我就是问 怎么 XmlNode xn = xdoc.SelectSingleNode("//string"); 这个查出来XN是Null,但是以下方法就可以
    XmlNodeList elemList = xdoc.GetElementsByTagName("string");
     foreach (XmlNode xn in elemList)
              {
              _Return =  xn.InnerText;
           }
    XmlNode xn = xdoc.SelectSingleNode("string"); 这样
      

  4.   

    系统的学习一下:http://blog.csdn.net/chinacsharper/article/details/9246627
      

  5.   

    我就是问 怎么 XmlNode xn = xdoc.SelectSingleNode("//string"); 这个查出来XN是Null,但是以下方法就可以
    XmlNodeList elemList = xdoc.GetElementsByTagName("string");
     foreach (XmlNode xn in elemList)
              {
              _Return =  xn.InnerText;
           }你干嘛要加个//??
      

  6.   

    就那么一句话:xmlns代表命名空间,查询的时候需要带命名空间,不指定的话会认为你是要查不带命名空间的
      

  7.   

    问题是 我 不管是查询 //string  还是 string  返回结果都是 null
      

  8.   

    有xmlns命名空间或没有,读取是不一样,你按没有的读取,就返回空了
      

  9.   

    SelectSingleNode,是在标签类似这样的形式的时候才能查询出值来:
    <string>值</string>
    而如果是如下形式:
    <a name=string/>你就必须使用按名称获取属性的方式来获取
      

  10.   

    XmlNode xn = xdoc.SelectSingleNode("//string");
    你这样写是没错的。但是你没命名空间。2楼是正确的!
                XmlDocument xml = new XmlDocument();
                XmlNamespaceManager ns = new XmlNamespaceManager(xml.NameTable);
                ns.AddNamespace("d", "http://temp.org/");
                xml.LoadXml("<?xml version=\"1.0\" encoding=\"utf-8\"?><string xmlns=\"http://temp.org/\">20141225153615</string>");
                string str = xml.SelectSingleNode("//d:string",ns).InnerXml;