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

hejialin666 2008-07-08 09:36:54
<a>
<b>bbb</b>
<c>ccc</c>
</a>
XML文件如上(不好意思只是大概描述一下,不过这个问题很严重的,明天就要交的)
读取<b>节点的值bbb
请高手指点一下!
...全文
311 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)
单向双向V2G 环境下分布式电源与电动汽车充电站联合配置方法(Matlab代码实现)内容概要:本文介绍了在单向和双向V2G(Vehicle-to-Grid)环境下,分布式电源与电动汽车充电站的联合配置方法,并提供了基于Matlab的代码实现。研究涵盖电力系统优化、可再生能源接入、电动汽车充放电调度、储能配置及微电网经济调度等多个关键技术领域,重点探讨了在不同电价机制和需响应策略下,如何通过智能优化算法实现充电站与分布式电源的协同规划与运行优化。文中还展示了多种应用场景,如有序充电调度、鲁棒优化模型、多目标优化算法(如NSGA-II、粒子群算法)在电力系统中的实际应用,体现了较强的工程实践价值和技术综合性。; 适合人群:具备电力系统、新能源、智能优化算法等相关背景的科研人员、研究生及从事能源系统规划与优化的工程技术人员;熟悉Matlab/Simulink仿真工具者更佳。; 使用场景及目标:①用于科研项目中关于电动汽车与分布式电源协同配置的模型构建与仿真验证;②支持毕业论文、期刊投稿中的案例分析与算法对比;③指导实际电力系统中充电站布局与能源调度的优化设计。; 阅读建议:建议结合文中提供的Matlab代码与具体案例进行同步实践,重点关注优化模型的数学建模过程与算法实现细节,同时可参考文末网盘资源获取完整代码与数据集以提升学习效率。
【电动车】【超级棒】基于蒙特卡洛模拟法的电动汽车充电负荷研究(Matlab代码实现)内容概要:本文围绕基于蒙特卡洛模拟法的电动汽车充电负荷研究展开,利用Matlab代码实现对不同类型电动汽车(如常规充电、快速充电、换电模式)在不同场景下的充电负荷进行建模与仿真。通过蒙特卡洛方法模拟大量电动汽车的充电行为,结合用户出行规律、充电时间、电量需等随机因素,分析电动汽车规模化接入电网后对电力系统负荷的影响,并探讨分时电价策略对充电负荷的引导作用,进而优化电网运行。研究涵盖充电负荷的空间分布特性、时间分布特征及对电网峰谷差的影响,旨在为电力系统规划和电动汽车有序充电管理提供理论支持和技术工具。; 适合人群:具备一定电力系统、交通工程或新能源汽车背景的研究生、科研人员及从事智能电网、电动汽车相关领域的工程技术人员。; 使用场景及目标:①用于研究大规模电动汽车接入对配电网负荷曲线的影响;②支撑分时电价、需响应等政策制定与优化;③为充电站规划、电网调度、储能配置等提供数据支持和仿真平台;④适用于学术研究、课题复现及工程项目前期分析。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注蒙特卡洛模拟的参数设置、充电行为的概率建模过程,并尝试调整输入变量以观察负荷变化趋势,加深对电动汽车充电负荷不确定性和聚合效应的理解。

111,120

社区成员

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

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

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