0

子ノードである "" ノードを考慮せずにノードをトラバースする方法。

以下のコード例では、9 つ​​のループを取得しています。しかし、私は3つのループを取得する必要があります。

NodeList TravellerInfo=BookingresponseEle.getElementsByTagName("TravellerInfo");

Element TravellerInfoEle=(要素)TravellerInfo.item(0);

NodeList Items=TravellerInfoEle.getElementsByTagName("項目");

XMLは以下です

<TravellerInfo>        
<Item>          
    <TicketNumber>5899553184513</TicketNumber>          
    <PaxType>ADT</PaxType>          
    <Title> MR</Title>          
    <FirstName>TEST</FirstName>          
    <LastName>TEST</LastName>          
    <DateOfBirth />          
    <SegmentInformation>            
    <Item>             
        <AirlinePNR>MWVGUH</AirlinePNR>              
        <TicketNo>5899553184513</TicketNo>              
        <FlightNumber>2777</FlightNumber>              
        <Origin>BLR</Origin>              
        <Destination>VTZ</Destination>              
        <DepartureDateTime>24/07/2012 06:50</DepartureDateTime>              
        <ArrivalDateTime>24/07/2012 08:55</ArrivalDateTime>              
        <AirCraftType>AT7</AirCraftType>              
        <CarrierCode>9W</CarrierCode>              
        <ClassCode>W</ClassCode>              
        <FareBasis>W2SA14JK</FareBasis>              
        <FrequentFlyerNumber />              
        <SpRequest />              
        <MealsPreference>VGML meals status : UN</MealsPreference>            
    </Item>            
    <Item>              
        <AirlinePNR>MWVGUH</AirlinePNR>              
        <TicketNo>5899553184513</TicketNo>              
        <FlightNumber>2704</FlightNumber>              
        <Origin>VTZ</Origin>              
        <Destination>MAA</Destination>              
        <DepartureDateTime>24/07/2012 19:15</DepartureDateTime>              
        <ArrivalDateTime>24/07/2012 21:00</ArrivalDateTime>              
        <AirCraftType>AT7</AirCraftType>              
        <CarrierCode>9W</CarrierCode>              
        <ClassCode>W</ClassCode>              
        <FareBasis>W2SA14JK</FareBasis>              
        <FrequentFlyerNumber />              
        <SpRequest />              
        <MealsPreference>VGML meals status : UN</MealsPreference>            
    </Item>  
    </SegmentInformation>        
 </Item>
 <Item>          
    <TicketNumber>5899553184512</TicketNumber>          
    <PaxType>CHD</PaxType>          
    <Title> MSTR</Title>          
    <FirstName>TESTC</FirstName>          
    <LastName>TESTC</LastName>          
    <DateOfBirth>15/07/2009</DateOfBirth>          
    <SegmentInformation>            
    <Item>              
        <AirlinePNR>MWVGUH</AirlinePNR>              
        <TicketNo>5899553184512</TicketNo>              
        <FlightNumber>2777</FlightNumber>              
        <Origin>BLR</Origin>              
        <Destination>VTZ</Destination>              
        <DepartureDateTime>24/07/2012 06:50</DepartureDateTime>              
        <ArrivalDateTime>24/07/2012 08:55</ArrivalDateTime>              
        <AirCraftType>AT7</AirCraftType>              
        <CarrierCode>9W</CarrierCode>              
        <ClassCode>W</ClassCode>              
        <FareBasis>W2SA14JK</FareBasis>              
        <FrequentFlyerNumber />              
        <SpRequest />              
        <MealsPreference>VGML meals status : UN</MealsPreference>            
    </Item>            
    <Item>              
        <AirlinePNR>MWVGUH</AirlinePNR>              
        <TicketNo>5899553184512</TicketNo>              
        <FlightNumber>2704</FlightNumber>              
        <Origin>VTZ</Origin>              
        <Destination>MAA</Destination>              
        <DepartureDateTime>24/07/2012 19:15</DepartureDateTime>              
        <ArrivalDateTime>24/07/2012 21:00</ArrivalDateTime>              
        <AirCraftType>AT7</AirCraftType>              
        <CarrierCode>9W</CarrierCode>              
        <ClassCode>W</ClassCode>              
        <FareBasis>W2SA14JK</FareBasis>              
        <FrequentFlyerNumber />              
        <SpRequest />              
        <MealsPreference>VGML meals status : UN</MealsPreference>            
    </Item>            
    </SegmentInformation>        
    </Item>
          <Item>          
    <TicketNumber>5899553184514</TicketNumber>          
    <PaxType>ADT</PaxType>          
    <Title> MR</Title>          
    <FirstName>TESTT</FirstName>          
    <LastName>TESTT</LastName>          
    <DateOfBirth />          
    <SegmentInformation>            
    <Item>             
        <AirlinePNR>MWVGUH</AirlinePNR>              
        <TicketNo>5899553184514</TicketNo>              
        <FlightNumber>2777</FlightNumber>              
        <Origin>BLR</Origin>              
        <Destination>VTZ</Destination>              
        <DepartureDateTime>24/07/2012 06:50</DepartureDateTime>              
        <ArrivalDateTime>24/07/2012 08:55</ArrivalDateTime>              
        <AirCraftType>AT7</AirCraftType>              
        <CarrierCode>9W</CarrierCode>              
        <ClassCode>W</ClassCode>              
        <FareBasis>W2SA14JK</FareBasis>              
        <FrequentFlyerNumber />              
        <SpRequest />              
        <MealsPreference>VGML meals status : UN</MealsPreference>            
    </Item>            
    <Item>              
        <AirlinePNR>MWVGUH</AirlinePNR>              
        <TicketNo>5899553184514</TicketNo>              
        <FlightNumber>2704</FlightNumber>              
        <Origin>VTZ</Origin>              
        <Destination>MAA</Destination>              
        <DepartureDateTime>24/07/2012 19:15</DepartureDateTime>              
        <ArrivalDateTime>24/07/2012 21:00</ArrivalDateTime>              
        <AirCraftType>AT7</AirCraftType>              
        <CarrierCode>9W</CarrierCode>              
        <ClassCode>W</ClassCode>              
        <FareBasis>W2SA14JK</FareBasis>              
        <FrequentFlyerNumber />              
        <SpRequest />              
        <MealsPreference>VGML meals status : UN</MealsPreference>            
    </Item>            
    </SegmentInformation>        
</Item>      
  </TravellerInfo>  
4

1 に答える 1

0

getChildNodes()を見るべきだと思います。これにより、呼び出したノードの直接の子孫が取得されます。

次に、結果の各ノードをチェックして、それがであることを確認する必要がありNodeListます<Item>(要素間のテキストノードなどを取得する可能性が最も高いため、チェックが不可欠です-詳細については、このSOの回答とその質問を参照してください)

于 2012-07-06T09:31:25.193 に答える