求c#读取XML文件一个节点的方法

hejialin666 2008-07-08 09:36:54
<a>
<b>bbb</b>
<c>ccc</c>
</a>
XML文件如上(不好意思只是大概描述一下,不过这个问题很严重的,明天就要交的)
读取<b>节点的值bbb
请高手指点一下!
...全文
297 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
mawering 2008-07-10
  • 打赏
  • 举报
回复
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节点,那就只返回找到的第一个节点的值,有点啰嗦,不知道你能搞明白不。
panw520 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 ericzhangbo1982111 的回复:]
你把你的xml文件拿出来

不然怎么知道xmlpath是什么啊

<a>
<b>bbb </b>
<c>ccc </c>
</a>


xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath)
result= xmldocument.SelectSingleNode("/a/b") ;

[/Quote]
mawering 2008-07-09
  • 打赏
  • 举报
回复
多了个 } ,删掉就行了
ericzhangbo1982111 2008-07-09
  • 打赏
  • 举报
回复
你把你的xml文件拿出来

不然怎么知道xmlpath是什么啊

<a>
<b>bbb </b>
<c>ccc </c>
</a>


xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath)
result= xmldocument.SelectSingleNode("/a/b") ;
denanjin 2008-07-09
  • 打赏
  • 举报
回复
document.getElementsByTagName("b");
mawering 2008-07-09
  • 打赏
  • 举报
回复
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 "";
}
}
yatobiaf 2008-07-09
  • 打赏
  • 举报
回复
XmlNode result = document.SelectSingleNode(xpath);
SelectSingleNode返回的应该不是XmlNode而是string吧,这是我猜的,楼主可以看看对不对。
一品梅 2008-07-09
  • 打赏
  • 举报
回复
Doc.SelectSingleNode(xpath)
hejialin666 2008-07-09
  • 打赏
  • 举报
回复
string xpath = @"\a\b";
XmlNode result = document.SelectSingleNode(xpath);
return result.InnerText;
楼上的,这个有什么错误吗?怎么到第二行就错误了?
chinaicm 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ermachao 的回复:]
xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath)
result= xmldocument.SelectSingleNode(xpath)
[/Quote]
xpath="\a\b";
hejialin666 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 amandag 的回复:]
http://blog.csdn.net/amandag/archive/2008/07/08/2623320.aspx
http://blog.csdn.net/amandag/archive/2008/07/08/2623322.aspx
[/Quote]
楼上的这种方法我会,你的XML结构是
<a>
<aa1>
<b>bbb </b>
<c>ccc </c>
<aa2>
<b>bbb</b>
<c>ccc</c>
</a>
和我的不同之处就是根节点下有多级节点,我的要求是:根节点下没有多级结点的情况
hejialin666 2008-07-09
  • 打赏
  • 举报
回复
楼上的写一些注释呀,
strValue = Convert.ToString(ds.Tables[fNode].Rows[intKey][strSection]);
上面这行是什么意思?ds是什么?
还有你的XML格式是什么也说明一下呀!
谢谢!
xuyang840117 2008-07-09
  • 打赏
  • 举报
回复
/// <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;

}
}
hejialin666 2008-07-09
  • 打赏
  • 举报
回复
是不是 "//" + element 的意思就已经跳过a节点了?
hejialin666 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mawering 的回复:]
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…
[/Quote]
问个问题:XmlNode node = doc.SelectSingleNode("//" + element);
这句不用考虑a节点吗?能够跳过a节点找到b节点吗?
hejialin666 2008-07-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 yatobiaf 的回复:]
XmlNode result = document.SelectSingleNode(xpath);
SelectSingleNode返回的应该不是XmlNode而是string吧,这是我猜的,楼主可以看看对不对。
[/Quote]
SelectSingleNode返回的就是XmlNode类型的

mawering的方法不错,我试一试
KingSnaker 2008-07-08
  • 打赏
  • 举报
回复
http://www.w3school.com.cn/xpath/index.asp
amandag 2008-07-08
  • 打赏
  • 举报
回复
http://blog.csdn.net/amandag/archive/2008/07/08/2623320.aspx
http://blog.csdn.net/amandag/archive/2008/07/08/2623322.aspx
hejialin666 2008-07-08
  • 打赏
  • 举报
回复
xpath 是什么?
xmldocument.SelectSingleNode()返回的是什么类型?
ermachao 2008-07-08
  • 打赏
  • 举报
回复
xmldocument.loadXML(xmlString)or xmldocument.load(xmlfilepath)
result= xmldocument.SelectSingleNode(xpath)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧