Что такое смарт-теги и как я могу удалить их из HTML?

Так что я все еще работаю над этим парсером. Сегодня я нашел документ с тегом <st1:place w:st="on"> Google говорит мне, что это смарт-тег Microsoft Office.

Я хотел бы избавиться от этих вещей, но я не могу найти список того, что они есть или сколько их есть?

Если они все следуют <...:...> шаблон будет легко удалить с помощью регулярных выражений.

Документ не имеет типа документа и расширения.jsp, но все содержимое находится между двумя <html> теги, и как бы ни был нестандартен зверь, мне все равно нужно его разобрать.

Хорошо, это на самом деле не большая проблема, но это отбрасывает мое форматирование и вызывает меня.

2 ответа

Решение

Это регулярное выражение должно сделать трюк:

/<[:alnum:]+:[\s\S]*>/

Он будет срабатывать для любого тега, который начинается с <, за которым следует буквенно-цифровой шаблон, за которым следует двоеточие ':'.

В качестве альтернативы:

/<\s*[:alnum:]+:[\s\S]*>/

Разрешил бы более свободный форматировщик тега (пробел между открытием <и пространством имен)

Мы хотели удалить <w:smartTag> и то, что перечислено ниже, нам помогло.

/<w:smartTag[^>]*>/
Другие вопросы по тегам