求c#读取XML文件一个节点的方法 <a> <b>bbb</b> <c>ccc</c></a>XML文件如上(不好意思只是大概描述一下,不过这个问题很严重的,明天就要交的)读取<b>节点的值bbb请高手指点一下! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath) result= xmldocument.SelectSingleNode(xpath) xpath 是什么?xmldocument.SelectSingleNode()返回的是什么类型? http://blog.csdn.net/amandag/archive/2008/07/08/2623320.aspxhttp://blog.csdn.net/amandag/archive/2008/07/08/2623322.aspx http://www.w3school.com.cn/xpath/index.asp 楼上的这种方法我会,你的XML结构是<a> <aa1> <b>bbb </b> <c>ccc </c> <aa2> <b>bbb</b> <c>ccc</c> </a>和我的不同之处就是根节点下有多级节点,我的要求是:根节点下没有多级结点的情况 string xpath = @"\a\b";XmlNode result = document.SelectSingleNode(xpath);return result.InnerText;楼上的,这个有什么错误吗?怎么到第二行就错误了? XmlNode result = document.SelectSingleNode(xpath); SelectSingleNode返回的应该不是XmlNode而是string吧,这是我猜的,楼主可以看看对不对。 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 ""; } } 你把你的xml文件拿出来不然怎么知道xmlpath是什么啊<a> <b>bbb </b> <c>ccc </c> </a> xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath) result= xmldocument.SelectSingleNode("/a/b") ; SelectSingleNode返回的就是XmlNode类型的mawering的方法不错,我试一试 问个问题:XmlNode node = doc.SelectSingleNode("//" + element); 这句不用考虑a节点吗?能够跳过a节点找到b节点吗? 是不是 "//" + element 的意思就已经跳过a节点了? /// <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; } } 楼上的写一些注释呀,strValue = Convert.ToString(ds.Tables[fNode].Rows[intKey][strSection]);上面这行是什么意思?ds是什么?还有你的XML格式是什么也说明一下呀!谢谢! 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节点,那就只返回找到的第一个节点的值,有点啰嗦,不知道你能搞明白不。 地地道道的初学者啊,求教些简单的问题,真的不懂。 object和string值比较的问题 排序的问题 虚心的请教一个问题! C#中如何使用动态增加的数组呢? 高难度挑战:征求用最简单方法实现可以编辑、可以自动定位、可以拼音码感应、可以选择的下拉框(DropDownList 或 Select),具体情况看内 100求个提示,进者有分!! 在线人数怎么做,总访问人数怎么做 Remoting服务端内存不释放,该怎么解决? 我在一台电脑上装.net framework 失败? 草鸟级问题:函数调用,参数传递! 如何让datagridview的其一列可更改,其它列只读呢?
result= xmldocument.SelectSingleNode(xpath)
xmldocument.SelectSingleNode()返回的是什么类型?
http://blog.csdn.net/amandag/archive/2008/07/08/2623322.aspx
<a>
<aa1>
<b>bbb </b>
<c>ccc </c>
<aa2>
<b>bbb</b>
<c>ccc</c>
</a>
和我的不同之处就是根节点下有多级节点,我的要求是:根节点下没有多级结点的情况
XmlNode result = document.SelectSingleNode(xpath);
return result.InnerText;
楼上的,这个有什么错误吗?怎么到第二行就错误了?
SelectSingleNode返回的应该不是XmlNode而是string吧,这是我猜的,楼主可以看看对不对。
{
try
{
string value = "";
XmlDocument doc = new XmlDocument();
doc.Load(xmlpath);
XmlNode node = doc.SelectSingleNode("//" + element);
value = node.InnerText;
}
return value;
}
catch (Exception e)
{
return "";
}
}
<b>bbb </b>
<c>ccc </c>
</a>
xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath)
result= xmldocument.SelectSingleNode("/a/b") ;
这句不用考虑a节点吗?能够跳过a节点找到b节点吗?
/// 获取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;
}
}
strValue = Convert.ToString(ds.Tables[fNode].Rows[intKey][strSection]);
上面这行是什么意思?ds是什么?
还有你的XML格式是什么也说明一下呀!
谢谢!