Intereting Posts
Вход на сайт с использованием метода JSoup post CSS текстовых эффектов Photoshop Как загрузить все изображения из одной из моих папок на мою веб-страницу, используя Jquery / Javascript CasperJS – Как открыть все ссылки в массиве ссылок Есть ли гигантская страница активов всех элементов Bootstrap, которые я могу переделать? Эквивалентен тегу в CSS? Вертикально и горизонтально изображение центра внутри Div, если вы не знаете размер изображения? Таблицы данных Несколько таблиц из нескольких массивов JSON Обнаружение смещения элемента в прокрутке в javascript / jQuery Входы пользователя, очистка и дезинфекция перед отправкой на db Работает ли getElementById на элементах, созданных javascript? Каков синтаксис для логических атрибутов, например флажок checked, в HTML? rails link_to_add_fields не добавляет поля с has_many: через (с вложенной формой внутри) jQuery fadeIn () различные интервалы с несколькими div Как получить Bootstrap Carousel, чтобы соответствовать 100% экрану?

Удаление стилей из HTML

У меня есть firebase database, полная описаний продуктов, которые были введены, пронизанные ужасным компьютерным HTML-кодом, и усеяны различной информацией о стилях … атрибуты стиля, tags шрифтов, фоновые атрибуты …

Я должен перепроектировать веб-сайт, но сначала мне нужно удалить весь стиль из описания продукта. Есть 100 000 продуктов, прежде чем кто-то предложит сделать это вручную. Я думаю, что некоторые творческие регулярные выражения в PHP могут сделать трюк.

В идеале я хотел бы удалить весь HTML и просто иметь простой текст, но описания содержат таблицы и таблицы таблиц … так что это просто закончится в слезах.

С нетерпением ждем ваших творческих решений 🙂

РЕДАКТИРОВАТЬ-

Во-вторых, я мог бы также сделать это в VBA, так как я могу экспортировать их на лист excel. Таким образом, решения PHP или VBA будут отличными.

РЕДАКТИРОВАТЬ-

Mont Blanc Scott Roof mounted cycle bike carrier

Part Number: 728540

-->

Mont Blanc Scott Roof Bar Rack 1 Cycle Carrier


Scott

  • Stylish, easy to use roof mounted cycle carrier, distinctive oval carrying bar.
  • Extra Soft Frame clamps hold cycle safely and gently
  • Extra wide wheel holders take the fattest tyres
  • Strong Webbing straps fasten wheels securely to carrier
  • Upright, roof bar mounted, locking cycle carrier
  •  Locks to roof rails and locks bikes
  •  Quick and easy to use
  • Adjustable for most cycle styles

Open document

To view Fitting Instructions in PDF format please click the spanner
Technical data

Mont Blanc Scott

Max number of bikes
1
Load capacity (kg)
15 KG
Weight (kg)
2.2KG
Fits frame-dimensions (mm)
Up to 80mm
Fits wheel-dimensions
All
Locks bikes to carrier
Yes
Locks carrier to car
Yes
Tilt function, with bikes
NA
TÜV/EuroBE approved
NA
Fullfills City Crash norms
NA
Miscellaneous

Fits all types of Roof Bars,

The cycle carrier is guaranteed for Five year from date of purchase.

We stock a wide range of towbars and towing accessories.
Click here to email us
if you require details of our other towing equipment.



Please note that with the Type of cycle carrier where you mount it
onto a flange ball you may need the long reach ball which will
allow you enough clearance from the bumper
Not from the UK ? Click the flag to purchase this item from our EU site

РЕДАКТИРОВАТЬ-

Просматривая это, я думаю, мне нужно избавиться от следующего:

Атрибуты: стиль bgcolor background

Теги: шрифт

Я бы рекомендовал использовать XSLT, чтобы отключить все нежелательные материалы. Хорошей отправной точкой будет простой шаблон идентификации.

Как насчет функции strip_tags php?

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

Для удаления атрибутов тегов, bgcolor и т. Д. Кто-то сделал эту функцию здесь, что может стоить взгляда, но помните хитроумные двойные кавычки на этой странице. Внизу есть ссылка для загрузки кода без форматирования WordPress.

Благодаря идее Пола, вот пример в Excel. Это очень грубо и также необходимо изменить в зависимости от того, как вы храните свой HTML в Excel; но, надеюсь, вам это поможет.

Этот пример предполагает несколько вещей:

  1. Вы сначала установили объект TidyATL COM (щелкните ссылку, которая говорит «обертку» , вы можете зарегистрировать ее на 64-разрядной версии Win 7, сначала скопировав DLL в C: \ Windows \ SysWOW64 и запустив regsvr32 C: \ Windows \ SysWOW64 \ TidyATL.dll).

  2. В вашем проекте Excel есть ссылки на Microsoft XML 6.0 и Tidy 1.0 Type Library

  3. Ваш HTML хранится в ячейке A1 листа 1. Результаты помещаются в ячейку B1. Вы можете легко расширить эту идею, чтобы перебирать все используемые ячейки в столбце и обрабатывать весь HTML сразу.

  4. У меня нет опыта написания XSLT. Я разорвал «шаблон идентификации» прямо отсюда . Я никогда не использовал XSLT до сегодняшнего дня; поэтому, возможно, кто-то, кто это знает, может редактировать XSLT, чтобы вырезать узлы . В этом примере удаляются все атрибуты.

Это использует Tidy HTML для преобразования вашего уродливого HTML в XHTML, а затем применяет шаблон XSLT к результату.

EDIT : извините, прикрутил атрибут «match» в XSLT. Был: match = ‘@ * | node ()’ должен быть: match = ‘node ()’

Вот код, который я использовал:

 Sub TidyUp() Dim t As TidyATL.TidyDocument Dim sXSLT sXSLT = "< ?xml version='1.0' encoding='ISO-8859-1'?>" & _ "" & _ "" & _ " " & _ " " & _ " " & _ "" & _ "" Set t = New TidyATL.TidyDocument t.ParseString Sheet1.Range("A1").Value t.SetOptBool TidyXmlOut, True t.SetOptBool TidyXhtmlOut, True t.SetOptBool TidyNumEntities, True t.SetOptBool TidyXmlDecl, True t.CleanAndRepair Dim x As MSXML2.DOMDocument Dim x2 As MSXML2.FreeThreadedDOMDocument Dim xe As MSXML2.IXMLDOMParseError Set x = New MSXML2.DOMDocument Set x2 = New MSXML2.FreeThreadedDOMDocument 'Load XHTML into a DOM x.LoadXML t.SaveString Set xe = x.parseError If xe.ErrorCode <> 0 Then MsgBox "Err: " & xe.reason End End If 'Load XSLT into a DOM x2.LoadXML sXSLT Set xe = x2.parseError If xe.ErrorCode <> 0 Then MsgBox "Err: " & xe.reason End End If Dim xt As XSLTemplate Set xt = New XSLTemplate Set xt.stylesheet = x2 Dim xp As IXSLProcessor Set xp = xt.createProcessor xp.input = x xp.transform Sheet1.Range("B1").Value = xp.output End Sub 

Вот результат (еще уродливый, но без атрибутов):

 < ?xml version="1.0" encoding="UTF-16"?>

Mont Blanc Scott Roof mounted cycle bike carrier

Part Number: 728540

Mont BlancScott Roof Bar Rack 1 Cycle Carrier


Scott

  • Stylish, easy to use roof mounted cycle carrier, distinctive oval carrying bar.
  • Extra Soft Frame clamps hold cycle safely and gently
  • Extra wide wheel holders take the fattest tyres
  • Strong Webbing straps fasten wheels securely to carrier
  • Upright, roof bar mounted, locking cycle carrier
  • Locks to roof rails and locks bikes
  • Quick and easy to use
  • Adjustable for most cycle styles

To view Fitting Instructions in PDF format please click the spanner
Technical data

Mont Blanc Scott

Max number of bikes
1
Load capacity (kg)
15 KG
Weight (kg)
2.2KG
Fits frame-dimensions (mm)
Up to 80mm
Fits wheel-dimensions
All
Locks bikes to carrier
Yes
Locks carrier to car
Yes
Tilt function, with bikes
NA
TÜV/EuroBE approved
NA
Fullfills City Crash norms
NA
Miscellaneous

Fits all types of Roof Bars,

The cycle carrier is guaranteed for Five year from date of purchase.

We stock a wide range of towbars and towing accessories.
Click here to email us
if you require details of our other towing equipment.



Please note that with the Type of cycle carrier where you mount it
onto a flange ball you may need the long reach ball which will
allow you enough clearance from the bumper
Not from the UK ? Click the flag to purchase this item from our EU site

EDIT: этот XSLT, похоже, делает трюк; он удаляет некоторые tags с их содержимым и некоторые tags без их содержимого, в зависимости от того, что вы укажете. Опять может быть, кто-то с некоторыми знаниями XSLT может разработать.

 < ?xml version='1.0' encoding='ISO-8859-1'?>            

Результат:

 < ?xml version="1.0" encoding="UTF-16"?>
Mont Blanc Scott Roof mounted cycle bike carrier

Part Number: 728540
Mont BlancScott Roof Bar Rack 1 Cycle Carrier

Scott
  • Stylish, easy to use roof mounted cycle carrier, distinctive oval carrying bar.
  • Extra Soft Frame clamps hold cycle safely and gently
  • Extra wide wheel holders take the fattest tyres
  • Strong Webbing straps fasten wheels securely to carrier
  • Upright, roof bar mounted, locking cycle carrier
  • Locks to roof rails and locks bikes
  • Quick and easy to use
  • Adjustable for most cycle styles
To view Fitting Instructions in PDF format please click the spanner
Technical dataMont Blanc Scott
Max number of bikes
1
Load capacity (kg)
15 KG
Weight (kg)
2.2KG
Fits frame-dimensions (mm)
Up to 80mm
Fits wheel-dimensions
All
Locks bikes to carrier
Yes
Locks carrier to car
Yes
Tilt function, with bikes
NA
TÜV/EuroBE approved
NA
Fullfills City Crash norms
NA
Miscellaneous
Fits all types of Roof Bars,
The cycle carrier is guaranteed for Five year from date of purchase.

We stock a wide range of towbars and towing accessories.
Click here to email us if you require details of our other towing equipment.

Please note that with the Type of cycle carrier where you mount it
onto a flange ball you may need the long reach ball which will
allow you enough clearance from the bumper
Not from the UK ? Click the flag to purchase this item from our EU site

Это регулярное выражение должно давать ожидаемые результаты, но я его не тестировал:

 preg_replace('/(< .*)(style=\".*\")(.*>)/', '{$1}{$3}', $yourhtml); 

Я думаю, что необходимое регулярное выражение могло быть намного проще, чем вы себе представляете, но опять же, я не знаю, как выглядят описания продуктов. Каковы шансы встретить < и> в описаниях, кроме как часть HTML-тегов? Если шансы очень малы, может ли что-то подобное не делать трюк?

 $new_description = preg_replace('/< ([\w_ '"])+>/', '', $description);