<SystemConfig>
  <!--beijing-->
  <game game_name="beijing" game_zhouqitime="game_name" game_yanchitime="15" game_method="1000" timezone="0" game_url="1000" game_yanshitime="1000">
    <!--第一期开奖时间-->
    <game_time id="1" opentime="" endtime="">
    </game_time>
    <game_time id="2" opentime="" endtime="">
    </game_time>
    <game_time id="3" opentime="" endtime="">
    </game_time>
  </game>
  <!--slfk-->
  <game game_name="siluofake" game_zhouqitime="300" game_yanchitime="15" game_method="POST" timezone="" game_url="http://www.etip.ske/Acees.aspx">
    <!--第一期开奖时间-->
    <game_time id="1" opentime="" endtime="">
    </game_time>
    <game_time id="2" opentime="" endtime="">
    </game_time>
    <game_time id="3" opentime="" endtime="">
    </game_time>
  </game>
</SystemConfig>我现在想读取这个xml,读game节点,game_name="beijing"的!这个表达式如何写呢?谢谢!

解决方案 »

  1.   

    game[/SystemConfig/game/@game_name="beijing"]
      

  2.   

    哦!我的意思是。读取game_name="beijing",的game_zhouqitime值
      

  3.   


               XmlTextReader reader = new XmlTextReader(sXmlFileName);
                ArrayList alTemp = new ArrayList();
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Element && reader.Name == "game")
                    {
                        while (reader.Read())
                        {
                            if (reader.NodeType == XmlNodeType.Element)
                            {
                                 if (reader.Name == "beijing")
                                {
                                    String[] sTemp = new String[3];//读取节点
                                         int tempindex = 0;
                                    for (tempindex = 0; tempindex <3;tempindex++ )
                                    {
                                        sTemp[tempindex] = reader.GetAttribute(tempindex);
                                    }
                                    alTemp.Add(sTemp);                                //没有读你的game_time节点。
                                         //自己加一下。
                                }
                                else
                                    break;
                            }
                        }
                        break;
                    }
                }
                reader.Close();            return alTemp;
    你的XML中<game那一行最后的一个time有没有问题?感觉好像格式有问题。
    上面的代码是从我的项目中摘录出来的,针对你的XML格式未做测试,仅供参考。
      

  4.   

    1楼正解,3楼,你的是DOM, 不是xpath
      

  5.   


    game/@game_zhouqitime[/SystemConfig/game/@game_name="beijing"]
      

  6.   

    //game/@game_zhouqitime[@game_name='beijing']
      

  7.   

    http://www.w3school.com.cn/xpath/xpath_syntax.asp
      

  8.   


    doc.SelectSingleNode("//game[@game_name='beijing']").Attributes["game_zhouqitime"];
      

  9.   

    算了,写完整吧:
                  XPathDocument doc = new XPathDocument("c:\\1.xml");
                XPathNavigator nav = doc.CreateNavigator();
                XPathNodeIterator iter = nav.Select("/SystemConfig/game/@game_zhouqitime[/SystemConfig/game/@game_name=\"beijing\"]");
                while (iter.MoveNext())
                {
                    MessageBox.Show(iter.Current.Name + ":" + iter.Current.Value);
                }