如何得到xml某个节点下面的值?
有如下XML文档,在timer事件里定义一个方法,该方法读到系统时间然后遍历XML文档节点,找到系统时间与XML文档中节starttime对应的节点,然后传回该对应节点的universe 和 domicile,请问这个方法应该如何写呢?谢谢<?xml version="1.0" encoding="utf-8" ?>
<TSSchedule>
<Job1>
<Universe>FO</Universe>
<Domicile>USA</Domicile>
<StartTime>5:00</StartTime>
</Job1>
<Job2>
<Universe>FE</Universe>
<Domicile>USA</Domicile>
<StartTime>8:00</StartTime>
</Job2>
<Job3>
<Universe>FC</Universe>
<Domicile>USA</Domicile>
<StartTime>12:00</StartTime>
</Job3>
</TSSchedule> --------------------编程问答-------------------- 有很多种的。下面是用dataset来读。
然后楼主可以对objDataSet对象来取值。、
DataSet objDataSet=new DataSet();
objDataSet.ReadXml(Server.MapPath("grade.xml"));
--------------------编程问答-------------------- 既然得到了节点就是有一个node了
node1=node.ParentNode.SelectSingleNode("Universe");
node1=node.ParentNode.SelectSingleNode("Domicile"); --------------------编程问答--------------------
Dim xdXMLInfo As New XmlDocument--------------------编程问答-------------------- 请搜索一下xpath 的介绍,用xpath 很简单 --------------------编程问答-------------------- 不好意思,没审清题,如果时间节点都没找到
Dim xnTemplet As XmlNode
xdXMLInfo.Load("C:\1.xml")
For Each xnTemplet In xdXMLInfo.SelectSingleNode("TSSchedule").ChildNodes ' 遍历所有子节点
If xnTemplet.SelectSingleNode("StartTime").InnerText.Trim = "5:00" Then
MsgBox(xnTemplet.SelectSingleNode("Universe").InnerText)
MsgBox(xnTemplet.SelectSingleNode("Domicile").InnerText)
Exit For
End If
Next
string time=。。。;
XmlDocument doc=new XmlDocument();
try
{
doc.Load(cpath)
}
catch (Exception err)
{
MessageBox.Show(err.Message);
}
System.Xml.XmlNode node=doc.DocumentElement.ChildNodes[0];
System.Xml.XmlNode findnode;
for (int i=0;i<node.ChildNodes.count;i++)
{
if (node.ChildNodes[i].SelectSingleNode("StartTime").InnerText==time)
{
findnode=node.ChildNodes[i];
break;
}
} --------------------编程问答--------------------
string starttime = "12:00"; //你要小心xml文件中的空格
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.LoadXml(@"xmlfile.xml");
//根据时间找所在的节点
XmlNode timeNode = xmlDoc.SelectSingleNode("descendant::StartTime[text()='" + starttime + "']");
//父节点
XmlNode parentNode = nameNode.ParentNode;
//可以用ChildNodes[i]去获取子节点,也可以用firstChild等方法
MessageBox.Show(parentNode.ChildNodes[0].innerText); //0就是Universe节点
补充:.NET技术 , C#