В оболочке вы можете анализировать HTML , используя:
hxselect
из html-xml-utils
package vim
/ ex
(который может легко перепрыгнуть между html-тегами ), например: удаление метки стиля с помощью внутреннего кода: $ curl -s http://example.com/ | ex -s +'/
grep
, например: извлечение внешнего html файла H1: $ curl -s http://example.com/ | grep -o '.*
'
Example Domain
извлечение тела: $ curl -s http://example.com/ | tr '\n' ' ' | grep -o '.*'
Example Domain
...
-
html2text
для простого синтаксического анализа текста: например, таблицы синтаксического анализа : $ html2text foo.txt | column -ts'|'
- с использованием
xpath
(XML::XPath
perl-модуля), см. здесь пример - perl или Python (см. пример @Gilles )
- для разбора нескольких файлов одновременно, см. Как разбирать сотню html файлы исходного кода в оболочке?
Связанный (почему вы не должны использовать регулярное выражение):
0
задан Mizlul 17 January 2019 в 15:30
поделиться
Потому что обычно вы хотите хранить другие ключи в своем состоянии ...
Если в вашем штате:
{
items:['a', 'b', 'c'],
loading: false,
error: null
}
и вы возвращаете только для примера:
case FETCH_PRODUCTS_BEGIN:
return {
// ...state, --> Without this line
loading: true,
error: null
};
Ваше новое состояние будет
{
loading: true,
error: null
}
И ваш [ 114] будет потеряно.
Затем, возвращая:
case FETCH_PRODUCTS_BEGIN:
return {
...state,
loading: true,
error: null
};
Вы говорите
Возвращать копию состояния, но переопределяют клавиши
BLOCKQUOTE>loading
иerror
"
Это для создания нового скопированного объекта состояния с новыми или обновленными значениями (без этого вам нужно будет вручную указать каждое поле состояния).
Object.assign можно использовать в качестве альтернативы
Redux Docs действительно хорошо объясняет использование оператора распространения.