当前位置:编程学习 > C#/ASP.NET >>

如何得到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
        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
--------------------编程问答-------------------- 请搜索一下xpath 的介绍,用xpath 很简单  --------------------编程问答-------------------- 不好意思,没审清题,如果时间节点都没找到
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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,