vendredi 31 juillet 2015

Parsing HTML in Objective C using Hpple

Below is the my HTML code(actually little part of it) that I try to parse through in Objective-C;

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://ift.tt/nYkKzf">
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <title>Random string here</title>
  <meta name="Generator" content="Cocoa HTML Writer">
  <meta name="CocoaVersion" content="1347.57">
  <style type="text/css">
    p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times; color: #000000; -webkit-text-stroke: #000000}
    p.p2 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times; color: #0000ee; -webkit-text-stroke: #0000ee}
    p.p3 {margin: 0.0px 0.0px 0.0px 0.0px; text-align: right; font: 12.0px Times; color: #000000; -webkit-text-stroke: #000000}
    p.p4 {margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Times; color: #000000; -webkit-text-stroke: #000000}
    p.p5 {margin: 0.0px 0.0px 12.0px 0.0px; font: 11.0px Times; color: #000000; -webkit-text-stroke: #000000; background-color: #ffffff}
    p.p6 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times; color: #000000; -webkit-text-stroke: #000000; min-height: 14.0px}
    p.p7 {margin: 0.0px 0.0px 12.0px 0.0px; font: 12.0px Times; color: #000000; -webkit-text-stroke: #000000; min-height: 14.0px}
    p.p8 {margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Times; color: #ffffff; -webkit-text-stroke: #ffffff}
    td.td10 {width: 54.0px; background-color: #425165; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td11 {width: 43.0px; background-color: #425165; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td12 {width: 48.0px; background-color: #425165; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td13 {width: 52.0px; background-color: #425165; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td14 {width: 38.0px; background-color: #425165; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td15 {width: 55.0px; background-color: #425165; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td43 {width: 55.0px; background-color: #f3f3f3; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
    td.td48 {width: 49.0px; background-color: #f3f3f3; margin: 0.5px 0.5px 0.5px 0.5px; padding: 1.0px 1.0px 1.0px 1.0px}
  </style>
</head>
<body>
<table width="787.0" cellspacing="0" cellpadding="0" class="t1">
  <tbody>
    <tr>
      <td valign="top" class="td1">
        <p class="p1"><span class="s1"> </span></p>
        <table cellspacing="0" cellpadding="0">
          <tbody>
            <tr>
              <td valign="middle" class="td2">
                <p class="p2"><span class="s1"><a href="http://ift.tt/1H3Fqk4"><span class="s2"></span></a></span></p>
              </td>
              <td valign="middle" class="td3">
                <p class="p3"><span class="s1">2014-2015 Summer School<span class="Apple-converted-space"> </span></span></p>
              </td>
              <td valign="middle" class="td4">
                <p class="p1"><span class="s1"> </span></p>
              </td>
            </tr>
          </tbody>
        </table>
        <table cellspacing="0" cellpadding="0">
          <tbody>
            <tr>
              <td valign="top" class="td5">
                <p class="p1"><span class="s1"> </span></p>
              </td>
              <td valign="top" class="td6">
                <p class="p4"><span class="s1"><b>random string /COURSE CODE :</b></span></p>
                <p class="p5"><span class="s1">some string here/Select</span></p>
                <p class="p5"><span class="s1">string1<span class="Apple-converted-space"> </span></span></p>
                <p class="p5"><span class="s1">string2<span class="Apple-converted-space"> </span></span></p>
                <p class="p5"><span class="s1">string3<span class="Apple-converted-space"> </span></span></p>
                <p class="p5"><span class="s1">string4<span class="Apple-converted-space"> </span></span></p>

Assume that i want to get the strings that are at end of the code (string1, string2, string3 and string4);

To reach them when I write my path like that;

NSString *myXpath = @"//p[@class='p5']";

Simply its not working. My searchWithXPathQuery function returns nothing. I tried to change myXpath like "//p[@class='p5']/span[@class='s1']" but still there is no result. Part of my code after creating xpath;

NSArray *tutorialNodes = [tutorialsParser searchWithXPathQuery:myXpath];

        for(TFHppleElement *element in tutorialNodes){

            NSLog(@"Content: %@", [element content]);
        }

How can I write these strings to my console ?

Aucun commentaire:

Enregistrer un commentaire