2015-02-12 3 views
0

Итак, у меня есть этот код скрепера PHP и HTML ниже, который я хочу очистить, используя Xpath. Когда я пытаюсь царапать каждый @href, он показывает внешнийHTML <a href="\&quot;javascript:cal_action(14,">14</a>, когда он должен быть <a href="\&quot;javascript:cal_action(14, 2, 2014)\&quot;">14</a> @href разрезан пополам, где находится пространство. Что вызывает это?xpath получил неправильный атрибут html

$content = $xpath->query('//a'); 

    foreach($content as $c){ 
     var_dump(htmlspecialchars($c->C14N())); echo '<br>'; 
    } 

Этот код является кодом CURL. Вот HTML.

<div class="outercalendar" id="maincalendar821"><table class="calendarHeader"> 
    <tbody><tr> 
    <td><input type="button" onclick="AjxGetMainCalendarMonth('2', '2015', '821')" value="<"></td> 
    <td class="calendarHeader" colspan="5">March 2015</td> 
    <td><input type="button" onclick="AjxGetMainCalendarMonth('4', '2015', '821')" value=">"></td> 
    </tr> 
    </tbody></table> 
    <table class="calendar"> 
    <tbody><tr> 
    <td class="calendarDay">S</td> 
    <td class="calendarDay">M</td> 
    <td class="calendarDay">T</td> 
    <td class="calendarDay">W</td> 
    <td class="calendarDay">T</td> 
    <td class="calendarDay">F</td> 
    <td class="calendarDay">S</td> 
    </tr> 
    <tr> 
    <td class="calendar"><a href="javascript:cal_action(1, 3, 2015)">1</a></td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar"><a href="javascript:cal_action(7, 3, 2015)">7</a></td> 
    </tr> 
    <tr> 
    <td class="calendar"><a href="javascript:cal_action(8, 3, 2015)">8</a></td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar"><a href="javascript:cal_action(14, 3, 2015)">14</a></td> 
    </tr> 
    <tr> 
    <td class="calendar"><a href="javascript:cal_action(15, 3, 2015)">15</a></td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar"><a href="javascript:cal_action(21, 3, 2015)">21</a></td> 
    </tr> 
    <tr> 
    <td class="calendar"><a href="javascript:cal_action(22, 3, 2015)">22</a></td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar"><a href="javascript:cal_action(28, 3, 2015)">28</a></td> 
    </tr> 
    <tr> 
    <td class="calendar"><a href="javascript:cal_action(29, 3, 2015)">29</a></td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    <td class="calendar">&nbsp;</td> 
    </tr> 
    </tbody></table> 
    </div> 
+0

вы можете поделиться код? – aberna

+0

На самом деле, я написал код выше ... Я извиняюсь, я не писал достаточно ясно, я уже редактировать Здесь снова, чтобы убедиться, $ содержание = $ xpath-> запрос ('// а'); foreach ($ content as $ c) { var_dump (htmlspecialchars ($ c-> C14N())); echo '
'; } –

ответ

0

Проблема может быть в структуре информации, хранящейся в теге.

я предложил бы начать с более подробной XPath:

//a/@href

так что ваш исходный код будет:

$content = $xpath->query('//a/@href'); 
+0

Пробовали, что все еще получили ту же ошибку bro. –

+0

Что произойдет, если вы прямо напечатаете значения в $ content? – aberna

+0

Я получил этот '\ " javascript: cal_action (14,' –

Смежные вопросы