Я пытаюсь заменить все мои <img>
теги в HTML-файле тегом <%= image_tag() %>
rails.
Я хочу сделать что-то вроде:
doc = open("myfile.html") { |f| Hpricot(f) }
imgs = doc.search("//img") # here i got all Hpricot::Elements
imgs.each { |i|
# fake function name !
i.replace_by_HTML('<%= image_tag("/images/blabla.jpg") %>')
}
Что мне нужно, это функция, которая заменит узел в файле на строку, которую я передам.
< img src="/images/blalba.jpg" /> would give => <%= image_tag("/images/blabla.jpg") %>
Обновление:
Я не хочу использовать регулярные выражения, вотпочему я выбрал Hpricot, потому что он будет анализировать HTML для меня, и тогда я смогу сделать Element.attributes
и сгенерировать image_tag
со всеми включенными атрибутами.
Что если мои теги img похожи:
< img style="float:left;" src="images/blabla.jpg" width="30" height="30" ... />
или
< img src=\"images/blabla.jpg\" style=\"float:left;\" width=\"30\" height=\"30\" ... />
Понимаете, о чем я?Я могу проанализировать файл .SQL, содержащий экранирующие косые черты, атрибут src
может быть после другого атрибута и т. Д.
Дело в том, что я уже выполнил функцию, которая вернет мой image_tag
, если яукажите Hpricot::Element
, но я не знаю, как заменить исходный узел моей строкой в документе Hpricot.