如何在iPhone中使用TFHpple

时间:2011-09-29 09:08:43

标签: iphone objective-c

i use this code for html file but it not working how to solve it some one help

它显示此消息/Users/pradeepyadav/Desktop/htmldemo/TestHtml.m:45:0 /Users/pradeepyadav/Desktop/htmldemo/TestHtml.m:45:警告:'TFHpple'可能无法响应'-search :

- (void)viewDidLoad {
    [super viewDidLoad];


    NSData *data = [[NSData alloc] initWithContentsOfFile:@"example.html"];

    // Create parser
    xpathParser = [[TFHpple alloc] initWithHTMLData:data];

    //Get all the cells of the 2nd row of the 3rd table 
    NSArray *elements  = [xpathParser search:@"//table[3]/tr[2]/td”];//here i get message search is not use in TFHpple.h

    // Access the first cell
    TFHppleElement *element = [elements objectAtIndex:0];

    // Get the text within the cell tag
    NSString *content = [element content];  

    [xpathParser release];
    [data release];





}





This Is my html file
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><META http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Ryanair.com</title><link rel="stylesheet" type="text/css" href="css/Ryanair/Standard.css" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:usr="urn:the-xml-files:xslt"><link rel="stylesheet" type="text/css" href="css/Ryanair/datePicker.css" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:usr="urn:the-xml-files:xslt"><script type="text/javascript" src="/data/js/skysales_3F5DBD0632207A3932CD626AEDC1A849.js"></script><script type="text/javascript" src="/data/js/skysales_B5A6631CD62DEC33073F138AE4A7C8D2.js"></script><script src="http://www.google.com/jsapi"></script><script type="text/javascript" charset="utf-8">
        google.load('ads.search', '2');
    </script><script type="text/javascript" language="javascript" xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:usr="urn:the-xml-files:xslt">
  Date.dayNames=['Sunday','Monday','Tuesday','Wednesday','Thusday','Friday','Saturday'];
  Date.monthNames=['January','February','March','April','May','June','July','August','September','October','November','December'];
  if (typeof jQuery != 'undefined') {
    $.dpText={
      TEXT_PREV_YEAR:'Previous year',
      TEXT_PREV_MONTH:'Previous month',
      TEXT_NEXT_YEAR:'Next year',
      TEXT_NEXT_MONTH:'Next month',
      TEXT_CLOSE:'Close',
      TEXT_CHOOSE_DATE:' '
    };
  }

  var datePickerFormat='yyyy-mm-dd';
  var datePickerDelimiter='-';
  Date.format=datePickerFormat;
        var pln="en";
        var pcu="IE";
</script></head><body><noscript xmlns:ms="urn:schemas-microsoft-com:xslt" xmlns:usr="urn:the-xml-files:xslt"><p class="error noprint">
  ERROR:
  This service makes use of Javascript, which appears to be turned off.
  Click <a href="activateJavascript.htm">here</a> to learn how to activate it.
</p></noscript><form novalidate="true"method="post" action="FRSelect.aspx" id="SkySales" ><div><input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value=""><input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""><input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUBMGRkg4UKvNNb1NbM14/2n9zUxhNQ++A="></div><div id="header" style="width: 100%;"><div id="blu"><a href="http://www.ryanair.com"><img src="Images/Ryanair/logoyelbg.gif" width="228" height="42" alt="Ryanair.com Homepage" title="Ryanair.com Homepage"></a></div><div id="yel" onclick="this.firstChild.innerHTML='WWW156 2011-09-29 06:31:09 reglixj3c555jw1v|413894465 ';"><span title="DNS: www156 62.73.129.156 10.37.2.156 "> </span>Search » <b>Select</b> » Services » Payment » Itinerary</div><input type="hidden" id="sysdate" value="2011-09-29"><input type="hidden" id="systime" value="06:31:09"></div><div><div id="body"><div id="wrapper"><div id="error"><input type="hidden" name="errorlist" value=""><script language="Javascript" type="text/javascript">
  $(document).ready(function(){
    var msg = "";          

    if (msg.length  > 0) {
      msg = msg.replace(/([\.|:])\s*([^\.]+)/g,"$1``$2") 
      var msg_array = msg.split("``");
      var newMsg = "";
      for (var idx = 1; idx < msg_array.length + 1; idx++){
        if (newMsg.indexOf(msg_array[msg_array.length - idx]) == -1)  { 
          newMsg = msg_array[msg_array.length - idx] + "\n" + newMsg ;
        }
      }
      alert(newMsg);
    }
  });
</script></div><div id="main"><p><b>Here are the flights and fares available on the requested date(s).</b></p><ol><li>Select the flight of your choice.</li><li>Click on the fare name to see the fare rules.</li></ol><script language="javascript" type="text/javascript">
    $(document).ready(function() {          
      var minDepArr = ('2011 09 29 12 31').split(' ');
  var minDep = new Date(minDepArr[0],minDepArr[1]-1,minDepArr[2],minDepArr[3],minDepArr[4]);


  $(".avlLst").each(function(){
   if($(this).find("input[type='radio']").size() == 0){
      $("input[id$='_ButtonSubmit']").attr('disabled', 'disabled').css('background-color','#C0C0C0');
    }
  });


  $("input[type=radio]").each(function() {
  var re = new RegExp("[0-9]{2}\/[0-9]{2}\/[0-9]{4}\\s[0-9]{2}\:[0-9]{2}");
  var m = re.exec($(this).val());
  if(m != null){
  var regexp = /([0-9]{2})(\/)([0-9]{2})(\/)([0-9]{4})(\s)([0-9]{2}):([0-9]{2})/gi;
  var depArr = m[0].replace(regexp,'$5 $1 $3 $7 $8').split(' ');
  var dep = new Date(depArr[0],depArr[1]-1,depArr[2],depArr[3],depArr[4]);
  if(dep <= minDep){
          $(this).attr('disabled', 'disabled').attr('checked','');
          }
      }
      });
    });

  function setTabIndex(marketIndex, index){
  var fld=['',
  ''];
  var i=marketIndex==1?0:1;
  document.getElementById(fld[i]).value = index;
  postBack();
  }

  function postBack(){
  ;
  }

  var pleaseWaitMessage = 'Please Wait...';
  var marketHeaders = ['','Going Out','Coming Back'];

  function feesTaxes(fltKeys,names){
  var mkts=[];
  for(var k in names){
  var market=names[k].charAt(names[k].length-1);
  mkts.push(market);
  $("div#taxAndFeeInclusiveDivBody"+market).css('background-color','#A3AECC').find(".hdr").html('<span>'+pleaseWaitMessage+'</span>').css('background-color','#FFFF99')
  .ajaxError(function(evt,req,sett){
  $(this).html('<span>Unavailable... try again!</span>').css('background-color','#FFBBBB');
  });
  }
  $.get("FRTaxAndFeeInclusiveDisplay-resource.aspx",
  {'flightKeys':fltKeys.join('+++'), 'numberOfMarkets':fltKeys.length, 'keyDelimeter':'+++'},
  function(data,stat){
  $htm=$(data);
  for(var i=0,ml=mkts.length;i<ml;i++){
    if($($htm[i]).html().match(/RefreshWindow/) ) {                 
      window.location.reload(true);
    }       
  $("div#taxAndFeeInclusiveDivBody"+mkts[i]).css('background-color','white').html('<p class="hdr">'+marketHeaders[mkts[i]]+'</p>'+$($htm[i]).html());
  }
  $('big#totalPrice').text($($htm[$htm.size()-1]).text());
  }
  );
  }      

  function selFlight(o){
  if(!o) return false;      
  $(o).parents('table:first').find("div[class^='planeImg']").css('background-position','top left');      
  $(o).parents('table:first').find("tr").removeAttr('class');
  var tro=$(o).parents('tr:first').attr('class','on');      
  var pval=[],pname=[],doJson=true;     

  var A=parseIDDate(tro.attr("id"));      
  var outDTarr=new Date(A[1],A[2],A[3],A[4]+1,A[5],A[6]);      

  $(".avlLst table").each(function(){        
    var $chkbs=$(this).find("input[type='radio'][name*='market']");       

  if(A[0]==1 && $chkbs.is("input[name*='market2']"))
  {          
      $chkbs.each(function(){
        var troB=$(this).parents('tr:first');
        var B=parseIDDate(troB.attr("id"));
        var inDTdep=new Date(B[1],B[2],B[3],B[4],B[5],B[6]);
        if(outDTarr>=inDTdep)
  {
  $(this).attr('disabled', 'disabled').attr('checked','');
  $("div[class^='planeImg']", troB).css('background-position','top left').attr('disabled', 'disabled');
  }else
  {
  $(this).attr('disabled', '');
  $("div[class^='planeImg']", troB).attr('disabled', '');
  }
  });
  }

  var $chkb=$chkbs.filter(':checked');

  if($chkb.size()!=0)
  {
  pval.push($chkb.val());pname.push($chkb.attr('name'));
  $chkb.parent().prev().children('div').css('background-position','top right');      
  }
  else if($chkbs.is(':enabled'))
  {
  doJson=false;
  if(A[0]==1)
  {
  $chkbs.filter(':enabled:first').attr('checked','true').trigger('click');      
  }

  }
  else $("div[id*='taxAndFeeInclusiveDivBody']", this.parent).find("*:not(.hdr)").remove();

  });

  if(doJson)
  {
        feesTaxes(pval,pname);
  }
  }

  function parseIDDate(s){
  var a=s.split('_');
  for(var k in a) a[k]=parseInt(a[k].replace(/^0([0-9]+)/,'$1'));
  return a;
  }

  var nbrMarkets=2;

  var dateRanges=[[],[new Date(2011,9,2), new Date(2011,9,2)],[new Date(2011,9,5), new Date(2011,9,5)]];
  var localization={
  inPast:'You cannot search earlier than the current date.',
  datesOverlap:'Your outbound date range cannot overlap your return date range',
  timesOverlap:'Please recheck the flights you selected\nYour second flight(s) must DEPART at least 1 hour(s) after your first flight(s) ARRIVES!',
  bookToday:'Unfortunatley due to security restrictions, If you wish to book a flight departing today.\nYou must either make the booking through your local RYANAIR CALL CENTER or at the AIRPORT.'
  };

  function checkDate(market,days){
  var flexi=Math.abs(days)==7?true:false;
  var idx=days>0?1:0;
  var today=new Date(), tomorrow=new Date(); tomorrow.addDays(1);
  if(idx==0 && dateRanges[market][idx] <= today){
  alert(localization['inPast']);
  return false;
  }
  if(nbrMarkets > 1){
  var overlap=false;
  if(market==2 && idx==0 && dateRanges[market][idx] <= dateRanges[market-1][idx]) overlap=true;
  else if(market==1 && idx==1 && dateRanges[market][idx] >= dateRanges[market+1][idx]) overlap=true;
  if(overlap){
  alert(localization['datesOverlap']);
  return false;
  }
  }
  return true;
  }     

  function checkTimes(){
  if(nbrMarkets < 2) return true;
  var DA=[0,0];
  $(".avlLst table input[type='radio']:checked").each(function(){
  var A=parseIDDate($(this).parents("tr:first").attr("id"));
  DA[A[0]-1]=new Date(A[1],A[2],A[3],A[4],A[5],A[6]);
  });
  $("input[id*='oTime']").each(function(){
  var A=parseIDDate($(this).val());
  DA[A[0]-1]=new Date(A[1],A[2],A[3],A[4],A[5],A[6]);
  });
  if((DA[1]-DA[0]) <= (60*60*1000)){
  alert(localization['timesOverlap']);
  return false;
  }
  return true;
  }

$(document).ready(function(){
  // This could probably be cleaned up
  $("a[id*='LinkButtonNextDay1']").click(function(){return checkDate(1,1);});
  $("a[id*='LinkButtonNextWeek1']").click(function(){return checkDate(1,7);});
  $("a[id*='LinkButtonPreviousDay1']").click(function(){return checkDate(1,-1);});
  $("a[id*='LinkButtonPreviousWeek1']").click(function(){return checkDate(1,-7);});
  $("a[id*='LinkButtonNextDay2']").click(function(){return checkDate(2,1);});
  $("a[id*='LinkButtonNextWeek2']").click(function(){return checkDate(2,7);});
  $("a[id*='LinkButtonPreviousDay2']").click(function(){return checkDate(2,-1);});
  $("a[id*='LinkButtonPreviousWeek2']").click(function(){return checkDate(2,-7);});

  $("a[id*='tab_']").click(function(){
  var A=this.id.split("_");
  var tabDate=new Date(A[2],A[3]-1,A[4]);
  var dtime=new Date(), today=new Date(dtime.getFullYear(),dtime.getMonth(),dtime.getDate());
  return true;
  });

  $("table[id*=ttable] th").click(function(){
    eval($(this).find("a").attr("href"));
   }).hover(function(){
    $(this).find("a").css("text-decoration", "underline");
    },function(){ $(this).find("a").css("text-decoration", "none");
  });

  $(".avlLst table").find("div[class^='planeImg'],input[type='radio']").click(function(){selFlight(this);});
  var firstRadio=null;
  $(".avlLst table").each(function(){
  var $chkbs= $("input[type='radio'][name*='market'][lwst='true']:enabled:first", this);
  if($chkbs.size() == 0){
    $chkbs = $("input[type='radio'][name*='market']:enabled:first", this);
  }
  $chkbs.each(function(){
  $(this).attr('checked','checked').parents('tr:first').attr('class','on');
  if(firstRadio==null) firstRadio=this;
  });
  var filter=function(){
  var flnum=this.value.replace(/.*FR~\s*(\d+)~.*/, 'FR$1');
  var a=preselectflights.split(',');
  for(var i=0;i<a.length;i++) if(a[i].replace(/\s/g, '')==flnum) return true;
     return false;
  };

  if(preselectflights!=''){
      $("input[type='radio'][name*='market']:enabled", this).filter(filter).eq(0).each(function(){
  $(this).attr('checked','checked');
  firstRadio=this;
  });
  }
  });
  $(firstRadio).trigger('click');

  displayPopUpFareRule = getFareRule;
  displayPopUpFareRule('K','K2LOW|K|FR|BND2||en-IE','ADT');
  });
  var preselectflights='';

function getFareRule(classOfService, fareRuleKeys, paxTypes){
  var url='FareRules.aspx?fareRuleKeys=' + fareRuleKeys +'&class=' + classOfService + '&paxTypes=' + paxTypes;
  $('div#fareRules').load(url + ' #main h2,#main div', function() {
    $('#main div.avlLst > table td:nth-child(3)').each(function(index, cell) { $(cell).wrapInner('<a href="#" onclick="return false;"></a>'); });
    $('#fareRules').jqm({overlay: 30, modal: false, onShow: showFareRules}).jqmAddTrigger('#main div.avlLst > table td:nth-child(3) *').jqmAddClose('#fareRules h2 span');
  });
}

function showFareRules(hs)
  {
    var pos = $(hs.t).offset();
    var width = $(hs.t).width();
    $('#fareRules').css( { 'left': (pos.left + width) + 'px', 'top': pos.top + 'px' });
    hs.w.show();
  }

</script><div class="avlBlk"><h2>Going Out <span>From Aarhus - Malaga</span></h2><table><tr><td align="left" class="chgOff"><a id="AvailabilityInputFRSelectView_LinkButtonPreviousDay1" href="javascript:__doPostBack('AvailabilityInputFRSelectView$LinkButtonPreviousDay1','')">« Previous Day</a></td><td align="right" class="chgOn"><a id="AvailabilityInputFRSelectView_LinkButtonNextDay1" href="javascript:__doPostBack('AvailabilityInputFRSelectView$LinkButtonNextDay1','')">Next Day »</a></td></tr></table><div class="avlLst avlLst1"><p id="taxAndFeeInclusiveDivHeader1"><b>Select A Flight</b></p><div id="taxAndFeeInclusiveDivBody1" class="drilldown"><p class="hdr">Select a Flight</p></div><table><tr id="1_2011_9_2_23_05_00"><td><div class="planeImg1" title="Click to select this fare on this flight"></div></td><td><input id="AvailabilityInputFRSelectView_RadioButtonMkt1Fare1" type="radio" name="AvailabilityInputFRSelectView$market1" value="K~K2LOW~BND2~~RoundFrom|FR~2523~ ~~AAR~10/02/2011 19:30~AGP~10/02/2011 23:05" onclick="return raise('SelectFare', new SelectFareEventArgs(1, 1, 'K'))" required="true" requiredError="Please select a flight and fare in every market." checked lwst="true"></td><td>Regular Fare</td><td>Adult<br></td><td align="right" style="font-size:110%;">449.00 DKK<br></td><td></td><td><b>Sun</b>2 Oct 11<br><b>Flight</b>FR 2523</td><td>19:30 Depart<br>23:05 Arrive</td></tr></table><div style="clear:both; width: 100%; text-align: center;"><a href="javascript:infoWin('trvfee',0,0,'EN')">Fares do not include optional fees/charges. For a full list of Ryanair fees, please click here</a></div><div class="clr"></div></div></div><div class="avlBlk"><h2>Coming Back <span>From Malaga - Aarhus</span></h2><table><tr><td align="left" class="chgOff"><a id="AvailabilityInputFRSelectView_LinkButtonPreviousDay2" href="javascript:__doPostBack('AvailabilityInputFRSelectView$LinkButtonPreviousDay2','')">« Previous Day</a></td><td align="right" class="chgOn"><a id="AvailabilityInputFRSelectView_LinkButtonNextDay2" href="javascript:__doPostBack('AvailabilityInputFRSelectView$LinkButtonNextDay2','')">Next Day »</a></td></tr></table><div class="avlLst avlLst1"><p id="taxAndFeeInclusiveDivHeader2"><b>Select A Flight</b></p><div id="taxAndFeeInclusiveDivBody2" class="drilldown"><p class="hdr">Select a Flight</p></div><table><tr id="2_2011_9_5_15_50_00"><td><div class="planeImg2" title="Click to select this fare on this flight"></div></td><td><input id="AvailabilityInputFRSelectView_RadioButtonMkt2Fare1" type="radio" name="AvailabilityInputFRSelectView$market2" value="C~C2LOW~BND2~~RoundFrom|FR~2522~ ~~AGP~10/05/2011 15:50~AAR~10/05/2011 19:30" onclick="return raise('SelectFare', new SelectFareEventArgs(2, 1, 'C'))" required="true" requiredError="Please select a flight and fare in every market." checked lwst="true"></td><td>No Taxes</td><td>Adult<br></td><td align="right" style="font-size:110%;">379.00 DKK<br></td><td></td><td><b>Wed</b>5 Oct 11<br><b>Flight</b>FR 2522</td><td>15:50 Depart<br>19:30 Arrive</td></tr></table><div style="clear:both; width: 100%; text-align: center;"><a href="javascript:infoWin('trvfee',0,0,'EN')">Fares do not include optional fees/charges. For a full list of Ryanair fees, please click here</a></div><div class="clr"></div></div></div><div class="section right" style="width:38%;padding:4px;"><div class="bld" style="font-size:16px;margin-bottom: 4px;"><p style="float:left;"><big>Total</big></p><p class="rght"><big id="totalPrice">Please Wait...</big></p></div><p><small>Optional charges such as administration and checked baggage fees are not included.<br><a href="javascript:infoWin('trvfee',0,0,'EN');">Click here for details</a></small></p></div><div style="display: none; border: 1px solid black; position: absolute; background-color: white; width: 33%; padding: 0 5px 5px 5px;" id="fareRules"></div><div class="btnRight"><input class="buttonRight" onClick="return validate(this) &amp;&amp; checkTimes() &amp;&amp; preventDoubleClick();" type="submit" name="AvailabilityInputFRSelectView$ButtonSubmit" value="Select and Continue" id="AvailabilityInputFRSelectView_ButtonSubmit"><button id="NewSrch" class="button" onclick="&#xA;                  window.location='FRSearch.aspx';&#xA;                &#xA;          return false;&#xA;        ">New Search</button><style type="text/css">
  .ad_header {color:#191970;font-weight:bold;font-size:11px}

             .ad_line1 {color:#0000FF;font-size:13px; text-decoration:underline}
             .ad_url {color:#008000;margin-bottom:12px; text-decoration:none}

  .ad_text {color:#191970;text-decoration:none}
  .wide_ads {padding:5px;}
  div.ads ul {margin: 0px; list-style: none;}
     .narrow_ads {padding:2px;position: absolute; top: 100px; left: 780px; width:200px;}
</style><div id="wide_ad_unit" class="ads wide_ads"></div><div id="narrow_ad_unit" class="ads narrow_ads"></div><script type="text/javascript" charset="utf-8">  

    var channels = {'DE':'1901616133','ES':'1730142402','FR':'4307283847','GB':'3975277388','IE':'0091594208','IT':'9330300293','NL':'6066899700','PL':'0911139945','SE':'1735271438','Other':'1974134150'};        
    var channelid= channels['IE'];           
    if (channelid == null) channelid='1974134150';     

var pageOptions = {
    'pubId' : 'pub-3031568651010206',
    'query' : 'Malaga Flight',
    'channel' : channelid,
    'linkTarget' : '_blank',
    'siteLinks' : true,
    'sellerRatings' : true
    };

var adblock = {
'container' : 'narrow_ad_unit',
    'number' : 8,
'width' : '250px',
    'lines' : 3,
'fontFamily' : 'verdana',
'colorText' : '#191970',
    'fontSizeTitle' : '13px',
'fontSizeDescription' : '11px',
'fontSizeDomainLink' : '11px',
'colorBackground' : '#BFD6F7',
    'colorDomainLink' : 'blue',
    'colorBorder' : '#BFD6F7'
};

    var adblock2 = {
    'container' : 'wide_ad_unit',
    'number' : 5,
    'width' : '400px',
    'lines' : 3,
    'fontFamily' : 'verdana',
    'colorText' : '#191970',
    'fontSizeTitle' : '13px',        
    'fontSizeDescription' : '11px',
    'fontSizeDomainLink' : '11px',
    'colorDomainLink' : 'blue',
    'colorBackground' : 'white',
    'colorBorder' : 'white' 
};
    new google.ads.search.Ads(pageOptions, adblock);

</script><div id="YahooBottomSelectAds"></div><script type="text/javascript">
  $(document).ready(function(){
    keywordsToUse = "Malaga Flight";
    resultsHeader = "Sponsored Listings";
    currentLanguage = "en";
    currentCulture = "IE";
    destination = "Malaga";

    YahooAds_SetFrame();
  });
</script></div></div></div><div class="clr"></div><div id="footer"><div id="fLinks"><a href="http://www.ryanair.com" title="Home">Home</a> | <a href="http://www.ryanair.com/site/EN/faqs.php" title="F.A.Q." target="_blank">F.A.Q.</a> | <a href="http://www.ryanair.com/site/EN/conditions.php?view=privacy" title="Privacy Policy" target="_blank">Privacy Policy</a> | <a href="http://www.ryanair.com/site/EN/conditions.php" title="General Terms &amp; Conditions of Carriage" target="_blank">General Terms &amp; Conditions of Carriage</a> | <a href="http://www.ryanair.com/en/terms-and-conditions/copywrite" title="Terms of Use" target="_blank">Terms of Use</a> | <a href="http://www.ryanair.com/site/EN/faqs.php?sect=CONTACT&amp;div=int_sup" title="Contact Us" target="_blank">Contact Us</a> | <a href="javascript:infoWin('trvfee',0,0,'EN');" title="Fees">Fees</a></div><div id="copyr">Copyright 2009 Ryanair Ltd.</div><input type="hidden" id="language" value=""><input type="hidden" id="culture" value=""><script type="text/javascript"> xtnv=document; xtsd=(window.location.protocol.indexOf('https:')==0?'https://logs152':'http://logc158'); xtsite=(window.location.hostname.indexOf('www.bookryanair.com')!=-1)?'384235':'385193'; xtn2="3"; xtpage="BookingProcess_IE::Select"; xtdi="1"; xt_multc="&x1=2&x2=20111002&x3=20111005&x4=AAR&x5=AGP&x6=1&x7=3"; if(window.xtparam!=null) window.xtparam+=xt_multc; else window.xtparam=xt_multc; </script><script type="text/javascript" src="js/Ryanair/xtcore.js"></script><noscript><img width="1" height="1" alt="" src="http://logc158.xiti.com/hit.xiti?s=384235&amp;s2=3&amp;p=BookingProcess_IE::Select&amp;di=1"></noscript></div></div></div><div class="clr"></div><script type="text/javascript"> 

// var theForm = document.forms ['SkySales']; if(!theForm){     theForm = document.SkySales; } function _ doPostBack(eventTarget,eventArgument){     if(!theForm.onsubmit ||(theForm.onsubmit()!= false)){         theForm。 _EVENTTARGET.value = eventTarget;         theForm .__ EVENTARGUMENT.value = eventArgument;         theForm.submit();     } } //

                function register(eventName, functionName)
                {
                    if (eval(events[eventName]) == null)
                    {
                        events[eventName] = new Array();
                    }
                    events[eventName][events[eventName].length] = functionName;
                }

                function raise(eventName, eventArgs)
                {
                    var undefined;

                    if (events[eventName] != undefined)
                    {
                        for (var ix=0; ix<events[eventName].length; ix++)
                        {
                            if ( eval(events[eventName][ix] + "(eventArgs)") == false)
                            {
                                return false;
                            }
                        }
                    }

                    return true;
                }
            // --></script><script language="javascript" type="text/javascript"><!-- 
                function SelectFareEventArgs(marketIndex, fltIndex, classOfService)
                {
                    this.paxFares   = marketPaxFares['mkt'+marketIndex+'|flt'+fltIndex+'|'+classOfService];
                    this.marketIndex = marketIndex;
                }
            // --></script><script language="javascript" type="text/javascript"><!-- 
            function AvailabilityInputFRSelectView_Validate(eventArgs)
            {

                var dots;
                var sel;
                var numOfMkts = 2;
                var msg = new Array (
            "", "", 

                0 );

                for (var i = 1; i <= numOfMkts; i++)
                {
                    sel  = '';
                    dots = document['SkySales']["AvailabilityInputFRSelectView$market" + i];

                    if (dots == null) 
                    {
                        alert("");
                        return false;
                    }
                    else if (dots[0]) // array
                    {
                        for (var j = 0; j < dots.length; j++)
                        {
                            if (dots[j].checked)
                            {
                                sel = dots[j].value;
                                break;
                            }
                        }
                    }
                    else // single
                    {
                        if (dots.checked)
                        {
                            sel = dots.value;
                        }
                    }

                    if (sel == '')
                    {
                        alert(msg[i-1]);
                        return false;
                    }
                }

                return true;
            }


            function displayPopUpFareRule(classOfService, fareRuleKeys, paxTypes)
            {
                var url = '/skysales/FareRules.aspx?fareRuleKeys=' + fareRuleKeys +'&class=' + classOfService + '&paxTypes=' + paxTypes;

                if (!window.fareRuleWindow || fareRuleWindow.closed)    // has not yet been defined
                {
                    fareRuleWindow = window.open(url,'fareRule','width=250,height=251,toolbar=0,status=0,location=0,menubar=0,scrollbars=1,resizable=0');
                }
                else
                {
                    fareRuleWindow.open(url,'fareRule','width=250,height=251,toolbar=0,status=0,location=0,menubar=0,scrollbars=1,resizable=0');
                    fareRuleWindow.focus();
                }
            }

            // --></script><script language="javascript" type="text/javascript"><!-- 
                                function paxFare(paxTypeDesc,classDesc,fareRuleKey)
                                {
                                    this.paxTypeDesc = paxTypeDesc;
                                    this.classDesc = classDesc;
                                    this.fareRuleKey = fareRuleKey;
                                }
                                var marketPaxFares = new Array();

                marketPaxFares['mkt1|flt1|K'] = new Array();

                        marketPaxFares['mkt1|flt1|K'][0] = new paxFare('Adult','Regular Fare','K2LOW|K|FR|BND2||en-IE');

                marketPaxFares['mkt2|flt1|C'] = new Array();

                        marketPaxFares['mkt2|flt1|C'][0] = new paxFare('Adult','No Taxes','C2LOW|C|FR|BND2||en-IE');

            // --></script><script language="javascript" type="text/javascript"><!-- 
                                function AvailabilityInputFRSelectView_initialize()
                                {

                                } // end of Availability_initialize

            // --></script><script type="text/javascript"> 

// var RegisterFunctionsWithEvents = new Array(register('Validate','AvailabilityInputFRSelectView_Validate'),register('WindowLoad','AvailabilityInputFRSelectView_initialize')); //           //在common.js中定义           $(文件)。就绪(函数(){                 WindowInitialize();           });     

2 个答案:

答案 0 :(得分:2)

TFHpple类没有search:方法。您正在寻找的方法是searchWithXPathQuery:

答案 1 :(得分:1)

@Rocky这不是一个html。这是JavaScript,当你尝试执行xpath搜索时你没有得到nil。那是因为你想要的表不在下载的数据中,你可以在firefox中看到这个表浏览器的开发人员工具,这个表是在运行时使用上面的脚本创建的。你可以使用UIWebView并从方法stringByEvaluatingJavaScriptFromString执行JavaScript来获取webview加载的innerHTML,然后使用HPPLE。 抱歉我的英语不好。