<?xml version="1.0" encoding="GB2312" ?> 
- <OTResponse>
- <ErrorInfo>
  <Code>20000</Code> 
  <Description>查询酒店房型成功</Description> 
  </ErrorInfo>
  <TransactionName>SingleHotelRoomTypeSearch</TransactionName> 
- <Data>
- <HotelRoomTypeInfo>
  <HotelId>1E74V</HotelId> 
  <HotelName>上海华港雅阁酒店</HotelName> 
- <RoomTypes>
- <RoomType>
  <RoomCode>DB001</RoomCode> 
  <RoomName>高级大床房</RoomName> 
  <Exceptive>Y</Exceptive> 
  <AgentCommisionRate>0.09</AgentCommisionRate> 
  <TeamRoom>N</TeamRoom> 
  <TeamRoomNum>0</TeamRoomNum> 
  <Floor>3-9</Floor> 
  <RoomArea>28</RoomArea> 
  <NotAddBed>N</NotAddBed> 
  <BedType>大床</BedType> 
  <Internet>宽带收费</Internet> 
- <RoomRates>
- <RoomRate>
  <StartDay>20080501</StartDay> 
  <EndDay>20080501</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>550.0</RateAmount> 
  <BalPrice>550.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080501</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080502</StartDay> 
  <EndDay>20080504</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>500.0</RateAmount> 
  <BalPrice>500.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080502</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080503</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080504</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080505</StartDay> 
  <EndDay>20080508</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>550.0</RateAmount> 
  <BalPrice>550.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080505</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080506</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080507</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080508</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080509</StartDay> 
  <EndDay>20080511</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>500.0</RateAmount> 
  <BalPrice>500.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080509</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080510</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080511</TheDate> 
  <CurrentNum>2</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080512</StartDay> 
  <EndDay>20080515</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>550.0</RateAmount> 
  <BalPrice>550.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080512</TheDate> 
  <CurrentNum>-3</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080513</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080514</TheDate> 
  <CurrentNum>-3</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080515</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080516</StartDay> 
  <EndDay>20080518</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>500.0</RateAmount> 
  <BalPrice>500.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080516</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080517</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080518</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080519</StartDay> 
  <EndDay>20080522</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>550.0</RateAmount> 
  <BalPrice>550.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080519</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080520</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080521</TheDate> 
  <CurrentNum>-3</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080522</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080523</StartDay> 
  <EndDay>20080525</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>500.0</RateAmount> 
  <BalPrice>500.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080523</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080524</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080525</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080526</StartDay> 
  <EndDay>20080529</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>550.0</RateAmount> 
  <BalPrice>550.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080526</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080527</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080528</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080529</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080530</StartDay> 
  <EndDay>20080601</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>500.0</RateAmount> 
  <BalPrice>500.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080530</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080531</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
- <RoomQuota>
  <TheDate>20080601</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
- <RoomRate>
  <StartDay>20080602</StartDay> 
  <EndDay>20080605</EndDay> 
  <PaymentType>T</PaymentType> 
  <DisplayPrice>1600.0</DisplayPrice> 
  <RateAmount>550.0</RateAmount> 
  <BalPrice>550.0</BalPrice> 
  <Meal>2</Meal> 
- <RoomQuotas>
- <RoomQuota>
  <TheDate>20080602</TheDate> 
  <CurrentNum>1</CurrentNum> 
  </RoomQuota>
  </RoomQuotas>
  </RoomRate>
  </RoomRates>
- <RoomTypeDesc>
- <![CDATA[ 所在楼层:3-9;房型面积:28;床型:大床;床面积:1.5*2m;宽带收费;
  ]]> 
  </RoomTypeDesc>
  </RoomType>
  </RoomTypes>
- <Additions>
- <Addition>
  <Catogory>加床费用</Catogory> 
  <RoomTypeCode>ALL</RoomTypeCode> 
  <SalePrice>100.0</SalePrice> 
  </Addition>
- <Addition>
  <Catogory>早餐费用</Catogory> 
  <RoomTypeCode>ALL</RoomTypeCode> 
  <SalePrice>101.0</SalePrice> 
  </Addition>
  </Additions>
  </HotelRoomTypeInfo>
  </Data>
  </OTResponse>
怎么遍历-<RoomRates>
- <RoomRate>节点下的值.当输入时期等于EndDay>20080501</EndDay>跳到下个节点. 

解决方案 »

  1.   

    xml.readdataset,
    xml直接读成dataset
      

  2.   

    我给你一段代码你研究下.        XmlDocument xml = new XmlDocument();
            string xmlpath = path;   // path是XML的文件路径
            xml.Load(xmlpath);
            XmlNode xn = xml.DocumentElement.SelectSingleNode(" RoomQuotas") 
            XmlNodeList nodes = xn.SelectNodes("RoomQuota");
            foreach (XmlNodeList no in nodes)     //读取每一个RoomQuota
            {
                 XmlElement xe=(XmlElement)no;
                 XmlNodeList nodes1=xe.ChildNodes
                 foreach(XmlNode no1 in nodes1)   //读取RoomQuota中的所有属性
                        {
                          XmlElement xe2=(XmlElement)no1;   //转换类型
                            if(xe2.GetAttributeNode(EndDay).InnerText=="20080501 ")//如果找到EndDay的值为20080501 好象是这么写.
                            {                        XmlNode no3= xe.SelectNodes("following-sibling::RoomQuota[1]";  //取下一个RoomQuota的XmlNode
                            想做什么操作随意吧.
                                break;                        }
                        }        }
    基本就是这些,有什么问题找我.
      

  3.   

    上面的 XmlNode no3= xe.SelectNodes("following-sibling::RoomQuota[1]";  
    也可以改成
     xe.NextSibling
      

  4.   

    恩.谢谢. .我试下. 但是这个XML是动态的..    试好结分
      

  5.   

    XmlElement xe=(XmlElement)no;
     
     转换有错!