Извлеките регион и замените его обратно на шаблон - PullRequest
1 голос
/ 16 октября 2010

У меня есть шаблон, в котором я хочу заменить определенные регионы. В моем примере ниже я хочу извлечь области между ... комментариями, манипулировать ими, а затем заменить их обратно после манипуляции.

Мне не нужна логика для объединения полей, но мне нужно извлечь регионы, чтобы я мог использовать свою логику и поместить ее обратно в шаблон.

Кто-нибудь знает элегантный или простой способ извлечения этих регионов? Я также надеюсь извлечь значения url в процессе, если это легко сделать по пути.

<table width="700" border="0" align="center" cellpadding="4" cellspacing="0">
 <tr>
  <td align="center" valign="top">
   <!--DynamicSlotStart url="http://www.test.com/itemdisplay0_10751_-1_57436_10001"-->
   <table>
    <tbody>
     <tr>
      <td><p><a title="[element='title']" href="[url]"><img border="0" alt="[element='title']" src="[element='photo' property='src' maxwidth='135']" width="135" height="135" /></a></p></td>
     </tr>
     <tr>
      <td><span>[element='h1']</span></td>
     </tr>
     <tr>
      <td><span><strong>[element='price']<br />
      </strong></span><span>[element='was_price']</span></td>
     </tr>
     <tr>
      <td><span><a title="[element='title']" href="[url]">Details</a></span></td>
     </tr>
    </tbody>
   </table>
   <!--DynamicSlotFinish-->
  </td>
  <td align="center" valign="top">
   <!--DynamicSlotStart url="http://www.test.com/itemdisplay0_10751_-1_3379_10001"-->
   <table>
    <tbody>
     <tr>
      <td><p><a title="[element='title']" href="[url]"><img border="0" alt="[element='title']" src="[element='photo' property='src' maxwidth='135']" width="135" height="135" /></a></p></td>
     </tr>
     <tr>
      <td><span>[element='h1']</span></td>
     </tr>
     <tr>
      <td><span><strong>[element='price']<br />
      </strong></span><span>[element='was_price']</span></td>
     </tr>
     <tr>
      <td><span><a title="[element='title']" href="[url]">Details</a></span></td>
     </tr>
    </tbody>
   </table>
   <!--DynamicSlotFinish-->
  </td>
  <td align="center" valign="top">
   <!--DynamicSlotStart url="http://www.test.com/itemdisplay0_10751_-1_104854_10001"-->
   <table>
    <tbody>
     <tr>
      <td><p><a title="[element='title']" href="[url]"><img border="0" alt="[element='title']" src="[element='photo' property='src' maxwidth='135']" width="135" height="135" /></a></p></td>
     </tr>
     <tr>
      <td><span>[element='h1']</span></td>
     </tr>
     <tr>
      <td><span><strong>[element='price']<br />
      </strong></span><span>[element='was_price']</span></td>
     </tr>
     <tr>
      <td><span><a title="[element='title']" href="[url]">Details</a></span></td>
     </tr>
    </tbody>
   </table>
   <!--DynamicSlotFinish-->
  </td>
  <td align="center" valign="top">
   <!--DynamicSlotStart url="http://www.test.com/itemdisplay0_10751_-1_80977_10001"-->
   <table>
    <tbody>
     <tr>
      <td><p><a title="[element='title']" href="[url]"><img border="0" alt="[element='title']" src="[element='photo' property='src' maxwidth='135']" width="135" height="135" /></a></p></td>
     </tr>
     <tr>
      <td><span>[element='h1']</span></td>
     </tr>
     <tr>
      <td><span><strong>[element='price']<br />
      </strong></span><span>[element='was_price']</span></td>
     </tr>
     <tr>
      <td><span><a title="[element='title']" href="[url]">Details</a></span></td>
     </tr>
    </tbody>
   </table>
   <!--DynamicSlotFinish-->
  </td>
 </tr>
</table>

1 Ответ

0 голосов
/ 16 октября 2010

Может быть, этот проект будет полезен: Html Agility Pack

Что такое Html Agility Pack (HAP)?

Это гибкий анализатор HTML, который создает DOM для чтения / записи и поддерживает простой XPATH или XSLT (вам на самом деле не нужно понимать XPATH или XSLT, чтобы его использовать, не волнуйтесь ...) Это библиотека кода .NET, которая позволяет анализировать HTML-файлы «из Интернета». Синтаксический анализатор очень терпим с искаженным HTML «реального мира». Объектная модель очень похожа на ту, что предлагает System.Xml, но для документов (или потоков) HTML.

Html Agility Pack теперь поддерживает Linq to Objects (через интерфейс LINQ to Xml Like). Проверьте новую бета-версию, чтобы играть с этой функцией

Примеры приложений:

  • Исправление или генерация страницы. Вы можете исправить страницу так, как вы хотите, изменить DOM, добавить узлы, скопировать узлы, хорошо ... ты называешь это.

  • Веб-сканеры. Вы можете легко добраться до IMG / SRC или a / hrefs с кучей запросов XPATH.

  • Веб-скребки. Вы можете легко отказаться любая существующая веб-страница в RSS кормить, например, только с XSLT файл, служащий связующим. Пример этого приведен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...