2013-09-12 4 views
2

Любой знает, как удалить весь HTML с страницы JavaServer. Сохранение только кода Java и всех свойств JSP.Удалить все HTML-страницы с сервера Java

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

Если кто-то знает способ сделать это простым способом, сообщите мне, иначе, если вы знаете, что синтаксический анализатор является единственным возможным способом, я тоже ценю.

EDIT:

мне это нужно, чтобы подсчитать количество строк, содержащих Java-код или свойства JSP в каждом JSP.

+0

Что вы пытаетесь сделать с этим? Как вы это выразите, вы можете разбирать JSP-файл и принимать то, что хотите/нуждаетесь соответственно. –

+1

Я хочу, чтобы подсчитать количество строк, содержащих исходный код Java или свойства JSP, такие как импорт, бобы и т. Д. В JSP. Для этого мне нужно удалить HTML в JSP, чтобы подсчитать строки, которые мне нужны. – lflaranjeira

+0

@Tip_Top На самом деле все наоборот. – lflaranjeira

ответ

2

Вы не можете сделать это легко, потому что HTML и JSP являются богатыми структурами как с точки зрения атомов (лексемы), так и с более сложными конструкциями (таблицами, операторами ...) Полный анализатор, который распознает все эти структуры сделал бы трюк. Если вы можете получить такой парсер, то это простой способ.

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

Вы можете сделать это, указав лексеры для каждого типа синтаксиса (например, HTML и JSP), которые передают управление друг другу по мере перехода между ними. Это очень стандартная задача по модулю пота. Затем подсчет строк довольно прост; каждая признанная лексема записывает свою начальную и конечную строки и дает необработанные данные.

Построение лексер для HTML и JSP не является технически сложным, но это может быть много работы («больно», как вы выразились). На протяжении многих лет HTML стал довольно сложным, и JSP теперь предположительно включает большую часть Java7 в качестве подмножества.

Если вы можете получить такой парсер для физического номера, на самом деле вы должны иметь возможность извлекать только часть лексера. Но, вероятно, проще просто использовать синтаксический анализатор без изменений.

Если вы когда-либо решаете, что хотите измерять более сложные свойства страниц JSP (например, глубину вложенности HTML-конструкций, логический счетчик ссылок, кодовая связь, у вас не будет выбора; вам действительно понадобится синтаксический анализатор, потому что эти меры основаны на сложной структуре конструкций langauge, а не только на лексемах.

Доступны доступные парсеры JSP с открытым исходным кодом. Разумеется, веб-серверы, которые выполняют JSP, должны содержать такие синтаксические анализаторы, проверьте кишки Tomcat Вам придется извлечь парсер с веб-сервера, и это, вероятно, будет работать. Я знаю, что есть коммерческие JSP-парсеры, предназначенные для поддержки именно такого рода задач (у моей компании есть один).

Если вам просто нужны подсчеты, и вы не хотите работать, вы можете получить инструмент, который уже имеет эту встроенную коллекцию метрик. См. Продукт Search Engine (SCSE) моей компании, который производит SLOC, McCabe and Cyclometric measures on files как побочный продукт его индекса индекса кода. SCSE использует парсер JSP, который мы должны достичь, из коробки.

+0

Было решение, которое я сделал. Pars все содержимое JSP и удаление содержимого HTML. После этого подсчитайте количество строк. Спасибо за вклад. – lflaranjeira

Смежные вопросы