读取XML节点数据的问题

liuwei424 2009-11-06 03:12:09
XML文件格式如下
<a>
<b name="1">
<c name="2" value="3"></c>
</b>
</a>

我想问一下,如何在XML中找到c这个name为2节点,并读出它的value,为3。

非常感谢。
好像应该用XPathDocument吧,应为这个方法对XML来说是只读的。

我提供一个方法签名吧。
public int GetXmlNodeValue(string node1, string node2)
其中,node1 是节点b的name值,node2是节点c的name值。
...全文
24 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
liuwei424 2009-11-06
  • 打赏
  • 举报
回复
我想用XPathDocument来写,最好是写成我给的方法头那样的格式。
非常感谢
PandaIT 2009-11-06
  • 打赏
  • 举报
回复

//自己修改成方法
XmlDataDocument xmld = new XmlDataDocument();
xmld.Load("XMLFile1.xml");

XmlNodeList list = xmld.SelectSingleNode("a").ChildNodes;
foreach (XmlNode item in list)
{
XmlElement xmle = (XmlElement)item;

if (xmle.GetAttribute("name").Equals("1"))
{
Console.WriteLine(xmle["c"].GetAttribute("value"));

}
}

//print>>>>3
张家可 2009-11-06
  • 打赏
  • 举报
回复
if (System.IO.File.Exists(Application.StartupPath + "\\xmltest.xml"))
{
LoadXml(Application.StartupPath + "\\xmltest.xml");
}

private int needvalue;
--------------------------------

private void LoadXml(string filePath)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);

private XmlNode tables= xmlDoc.SelectSingleNode("a");
XmlNodeList nodeList = tables.ChildNodes;
for (int i = 0; i < nodeList.Count; i++)
{
for (int j = 0; j < nodeList[i].ChildNodes.Count; j++)
{
if (Convert.ToInt32(nodeList[i].ChildNodes[j].Attribute["name"].Value)==2)

needvalue=Convert.ToInt32(nodeList[i].ChildNodes[j].Attribute["value"].Value);

}
}
张家可 2009-11-06
  • 打赏
  • 举报
回复
if (System.IO.File.Exists(Application.StartupPath + "\\xmltest.xml"))
{
LoadXml(Application.StartupPath + "\\xmltest.xml");
}

private int needvalue;
--------------------------------

private void LoadXml(string filePath)
{
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(filePath);

private XmlNode tables= xmlDoc.SelectSingleNode("a");
XmlNodeList nodeList = tables.ChildNodes;
for (int i = 0; i < nodeList.Count; i++)
{
for (int j = 0; j < nodeList[i].ChildNodes.Count; j++)
{
if (Convert.ToInt32(nodeList[i].ChildNodes[j].Attribute["name"].Value)==2)

needvalue=Convert.ToInt32(nodeList[i].ChildNodes[j].Attribute["name"].Value);

}
}

110,538

社区成员

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

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

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