Нужен запрос для XPath, который находит все <tr>элементы, которые содержат 7 <td>элементов - PullRequest
1 голос
/ 19 июня 2011

Здравствуйте и, надеюсь, спасибо за помощь.

Честно говоря, я не очень опытен в XPath и надеюсь, что у гуру будет быстрый ответ для меня.

Я скребвеб-страница для данных.Определяющим аспектом данных, которые я хочу, является то, что они содержатся в строке <tr>, содержащей 7 <td> элементов.Каждый элемент <td> имеет одну из частей данных, которые мне нужно импортировать.Я использую HTML Agility Pack в CodePlex для захвата данных, но я не могу понять, как определить запрос.

Содержится на веб-странице такой раздел, какthis:

<table border="0" cellpadding="3" cellspacing="1" width="100%">
  <tr class="bgWhite" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
    <td class="dataHdrText02" valign="top" width="50" align="center"><nobr>SYMBOL</nobr></td>
    <td class="dataHdrText02" valign="top" align="center">PERIOD</td>
    <td class="dataHdrText02" valign="top" align="center" width="*">EVENT TITLE</td>
    <td class="dataHdrText02" valign="top" align="center">EPS ESTIMATE</td>
    <td class="dataHdrText02" valign="top" align="center">EPS ACTUAL</td>
    <td class="dataHdrText02" valign="top" align="center">PREV. YEAR ACTUAL</td>
    <td class="dataHdrText02" valign="top" align="center"><nobr>DATE/TIME (ET)</nobr></td>
  </tr>
  <tr class="bgWhite">
    <td align="center" width="50"><nobr>CSCO&#160;</nobr></td>
    <td align="center">Q4&#160;2011</td>
    <td align="left" width="*">Q4 2011 CISCO Systems Inc Earnings Release</td>
    <td align="center">$ 0.38&#160;</td>
    <td align="center">n/a&#160;</td>
    <td align="center">$ 0.43&#160;</td>
    <td align="center"><nobr>10-Aug-11</nobr></td>
  </tr>
  <tr class="bgWhite">
    <td align="center" width="50"><nobr>CSCO &#160;</nobr></td>
    <td align="center">Q3&#160;2011</td>
    <td align="left" width="*">Q3 2011 Cisco Systems Earnings Release</td>
    <td align="center">$ 0.37&#160;</td>
    <td align="center">$ 0.42&#160;</td>
    <td align="center">$ 0.42&#160;</td>
    <td align="center"><nobr>11-May-11 AMC</nobr></td>
  </tr>
  <tr class="bgWhite" xmlns:msxsl="urn:schemas-microsoft-com:xslt">
     <td align="center" colspan="7"><img src="/format/cb/images/spacer.gif" width="1" height="4"></td>
  </tr>
</table>

Моя цель - собрать данные о доходах и поместить их в базу данных для анализа.Моей первоначальной идеей было собрать все элементы <tr> с элементами 7 <td> и затем работать с этими данными.Любые советы или альтернативные предложения будут приветствоваться.

1 Ответ

4 голосов
/ 19 июня 2011

Это должно сделать это для вас.

//tr[count(td)=7]
...