#plone
#plone
Вопрос:
Я хочу выполнить поиск по всем документам внутри довольно большого сайта Plone, которые содержат определенный фрагмент html в теле (элементы списка с заголовками внутри них, тьфу …), А затем изменить этот html (удалить заголовки).
Указания о том, как это сделать, очень ценятся!
Ответ №1:
Вы должны создать browserview (или запустить экземпляр в режиме отладки) и запустить этот код:
from Products.CMFCore.utils import getToolByName
import re
ctool = getToolByName(context, 'portal_catalog')
results = ctool.searchResults(portal_type='Document')
for i in results:
obj = i.getObject()
text = obj.getField('text').get(obj)
<find and remove your html using the regular expression module>
obj.reindexObject()
Если вам нужно делать это много раз, вы можете попробовать добавить свой пользовательский индекс, который упростит работу.
Комментарии:
1. Спасибо! Могу ли я также использовать lxml.html для этого (поскольку форматирование html немного сложно уловить с помощью регулярного выражения). Есть ли документы о том, как использовать этот модуль внутри Plone?
2. Вот как включить его в свою компоновку: pypi.python.org/pypi/plone.recipe.lxml . После этого вы просто импортируете его в свой код и используете.
Ответ №2:
Я давно не пробовал, но проверил GoReplace