<a>
   <b>bbb</b>
   <c>ccc</c>
</a>
XML文件如上(不好意思只是大概描述一下,不过这个问题很严重的,明天就要交的)
读取<b>节点的值bbb
请高手指点一下!

解决方案 »

  1.   

    xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath)
     result= xmldocument.SelectSingleNode(xpath)
      

  2.   

    xpath 是什么?
    xmldocument.SelectSingleNode()返回的是什么类型?
      

  3.   

    http://blog.csdn.net/amandag/archive/2008/07/08/2623320.aspx
    http://blog.csdn.net/amandag/archive/2008/07/08/2623322.aspx
      

  4.   

    http://www.w3school.com.cn/xpath/index.asp
      

  5.   

    楼上的这种方法我会,你的XML结构是
    <a> 
      <aa1>
        <b>bbb </b> 
        <c>ccc </c>
      <aa2>
        <b>bbb</b>
        <c>ccc</c> 
    </a>
    和我的不同之处就是根节点下有多级节点,我的要求是:根节点下没有多级结点的情况
      

  6.   

    string xpath = @"\a\b";
    XmlNode result = document.SelectSingleNode(xpath);
    return result.InnerText;
    楼上的,这个有什么错误吗?怎么到第二行就错误了?
      

  7.   

    XmlNode result = document.SelectSingleNode(xpath); 
    SelectSingleNode返回的应该不是XmlNode而是string吧,这是我猜的,楼主可以看看对不对。
      

  8.   

            public string readXml(string xmlpath, string element)//xmlpath是xml的文件名,element是你要查询的节点的名称,就是b
            {
                try
                {
                    string value = "";
                    XmlDocument doc = new XmlDocument();
                    doc.Load(xmlpath);
                    XmlNode node = doc.SelectSingleNode("//" + element);
                    value = node.InnerText;
                    }
                    return value;
                }
                catch (Exception e)
                {
                    return "";
                }
            }
      

  9.   

    你把你的xml文件拿出来不然怎么知道xmlpath是什么啊<a> 
      <b>bbb </b> 
      <c>ccc </c> 
    </a> 
    xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath) 
    result= xmldocument.SelectSingleNode("/a/b") ;
      

  10.   

    SelectSingleNode返回的就是XmlNode类型的mawering的方法不错,我试一试
      

  11.   

    问个问题:XmlNode node = doc.SelectSingleNode("//" + element); 
    这句不用考虑a节点吗?能够跳过a节点找到b节点吗?
      

  12.   

    是不是 "//" + element 的意思就已经跳过a节点了?
      

  13.   

       /// <summary>
            /// 获取fNode父节点下第intKey行 strSection的属性值
            /// </summary>
            /// <param name="fNode">父节电名称</param>
            /// <param name="intKey">行数</param>
            /// <param name="strSection">属性名称</param>
            /// <returns></returns>
            public string Getting(string fNode, int intKey, string strSection)
            {
                string strValue = "";            try
                {
                    strValue = Convert.ToString(ds.Tables[fNode].Rows[intKey][strSection]);
                    return strValue;            }
                catch (Exception ex)
                {
                    System.Console.WriteLine(ex.Message);
                    throw;
                    
                }
            }
      

  14.   

    楼上的写一些注释呀,
    strValue = Convert.ToString(ds.Tables[fNode].Rows[intKey][strSection]);
    上面这行是什么意思?ds是什么?
    还有你的XML格式是什么也说明一下呀!
    谢谢!
      

  15.   

    public string readXml(string xmlpath, string element)//xmlpath是xml的文件名,element是你要查询的节点的名称,就是b 这里的element就是你要查询的节点的名称,你想要查那个节点的InnerText,就写那个节点的名称,你要查b节点的InnerText,就在引用这个方法时将参数设为"b",同样你如果要查a 节点的InnerText,那你在引用这个方法时参数就设为"a",总之就是你要查找的节点的名称,这个方法返回的是 找到的选择匹配 XPath 表达式的第一个 XmlNode,所以参数是b那就不会找a节点,但是如果有2个或以上的b节点,那就只返回找到的第一个节点的值,有点啰嗦,不知道你能搞明白不。