Загрузка элемента hpricot с помощью фрагмента html - PullRequest
0 голосов
/ 15 декабря 2009

Есть ли способ загрузить кусок html в объект Hpricot :: Doc?

Я пытаюсь проанализировать различные фрагменты html внутри пользовательских тегов со страницы.

так что если у меня есть:

<foo>
  <b>here is some stuff</b>
  <table>
    <tr>
      <td>one</td>
      <td>two</td>
    </tr>
    <tr>
      <td>three</td>
      <td><four</td>
    </tr>
  </table>
</foo>

Мне бы хотелось иметь возможность получить foo и его содержимое в объекте Hpricot :: Doc, потому что мне нужно будет выполнить дополнительную обработку и, в конце концов, заменить его так, чтобы foo и все его дочерние элементы были заменены документ.

Я знаю, что могу перебирать детей из foo, но я надеялся, что есть способ собрать все это одним куском, чтобы сохранить вещи в чистоте. Также может иметь или не иметь атрибуты. Будет много элементов, каждый с фрагментом HTML, но ни один элемент foo не будет содержать другой элемент foo.

Это вообще возможно? Наконец, я начал с Hpricot, но я открыт для Nokogiri, если это что-то изменит.

1 Ответ

1 голос
/ 15 декабря 2009

Мне непонятно, с чем у вас проблемы.

Вы можете передать hpricot свой html любым удобным вам способом.

Из файла Readme

doc = Hpricot("<p>A simple <b>test</b> string.</p><foo>foo content</foo>")

Вы можете найти foo и поменять его местами

doc.search("//foo").first.swap "<blink>not foo</blink>"
...