获取HTML项目中使用的类和ID的列表
是否可以获取HTML项目中使用的所有类/ID的列表 我正在处理的项目有18个HTML页面(公平地说是JSP),我想知道每个页面上使用了哪些类/ID 例如:获取HTML项目中使用的类和ID的列表,html,css,netbeans,Html,Css,Netbeans,是否可以获取HTML项目中使用的所有类/ID的列表 我正在处理的项目有18个HTML页面(公平地说是JSP),我想知道每个页面上使用了哪些类/ID 例如:具有类“div class”和id“div id”。我不想手动搜索每个页面并记下我找到的所有类/ID 有没有一个工具可以帮我做到这一点 我正在使用NetBeans 8.0.2作为IDE,因此,如果可以使用NetBeans实现这一点,那将是非常棒的 据我所知,Netbeans不支持此功能。我提供了一个java类文件,您可以运行它来获取这些信息 在
具有类“div class”
和id“div id”
。我不想手动搜索每个页面并记下我找到的所有类/ID
有没有一个工具可以帮我做到这一点
我正在使用NetBeans 8.0.2作为IDE,因此,如果可以使用NetBeans实现这一点,那将是非常棒的 据我所知,Netbeans不支持此功能。我提供了一个java类文件,您可以运行它来获取这些信息
import java.io.BufferedReader;
import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlIdsAndClasses {
public static void main(String[] args) {
String path = "C:\\html";
scanFiles(path);
}
private static void scanFiles(String pathLocation) {
try (DirectoryStream<Path> directoryStream = Files.newDirectoryStream(Paths.get(pathLocation))) {
for (Path path : directoryStream) {
HtmlPageInfo pageInfo = new HtmlPageInfo();
List<String> classList = new ArrayList<String>();
List<String> idList = new ArrayList<String>();
pageInfo.setPageName(path.getFileName().toString());
pageInfo.setClassList(classList);
pageInfo.setIdList(idList);
getAllIds(path, pageInfo);
getAllClasses(path, pageInfo);
System.out.println(pageInfo);
}
} catch (IOException ex) {}
}
private static void getAllClasses(Path file, HtmlPageInfo pageInfo) {
Pattern classPattern = Pattern.compile("class=\"([-A-Za-z_ ]*)\"");
Charset charset = Charset.forName("UTF8");
BufferedReader reader = null;
try {
reader = Files.newBufferedReader(file, charset);
String line = null;
while ((line = reader.readLine()) != null) {
Matcher classMatcher = classPattern.matcher(line);
while(classMatcher.find()) {
String classGroup = classMatcher.group(1);
for(String cls : classGroup.split(" ")) {
pageInfo.getClassList().add(cls);
}
}
}
}
catch (IOException x) {
System.err.format("IOException: %s%n", x);
}
finally {
if(reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
private static void getAllIds(Path file, HtmlPageInfo pageInfo) {
Pattern idPattern = Pattern.compile("id=\"([-A-Za-z_]*)\"");
Charset charset = Charset.forName("UTF8");
BufferedReader reader = null;
try {
reader = Files.newBufferedReader(file, charset);
String line = null;
while ((line = reader.readLine()) != null) {
Matcher idMatcher = idPattern.matcher(line);
while(idMatcher.find()) {
String id = idMatcher.group(1);
pageInfo.getIdList().add(id);
}
}
}
catch (IOException x) {
System.err.format("IOException: %s%n", x);
}
finally {
if(reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
class HtmlPageInfo {
private String pageName;
private List<String> idList;
private List<String> classList;
public String getPageName() {
return pageName;
}
public void setPageName(String pageName) {
this.pageName = pageName;
}
public List<String> getIdList() {
return idList;
}
public void setIdList(List<String> idList) {
this.idList = idList;
}
public List<String> getClassList() {
return classList;
}
public void setClassList(List<String> classList) {
this.classList = classList;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append("[Page - ");
sb.append(pageName);
sb.append("]");
sb.append("\n\t[IDs - ");
sb.append("(" + idList.size() + ")]\n\t\t");
for(String id : idList) {
sb.append(id + ",");
}
sb.append("\n\t[Classes ");
sb.append("(" + classList.size() + ")]\n\t\t");
for(String cls : classList) {
sb.append(cls + ",");
}
sb.append("]\n\n");
return sb.toString();
}
}
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.nio.charset.charset;
导入java.nio.file.DirectoryStream;
导入java.nio.file.Files;
导入java.nio.file.Path;
导入java.nio.file.path;
导入java.util.ArrayList;
导入java.util.List;
导入java.util.regex.Matcher;
导入java.util.regex.Pattern;
公共类HtmlIdsAndClasses{
公共静态void main(字符串[]args){
String path=“C:\\html”;
扫描文件(路径);
}
专用静态void扫描文件(字符串路径位置){
try(DirectoryStream DirectoryStream=Files.newDirectoryStream(path.get(pathLocation))){
for(路径:directoryStream){
HtmlPageInfo=新的HtmlPageInfo();
List classList=new ArrayList();
List idList=new ArrayList();
pageInfo.setPageName(path.getFileName().toString());
pageInfo.setClassList(类列表);
pageInfo.setIdList(idList);
getAllID(路径、页面信息);
GetAllClass(路径、页面信息);
系统输出打印项次(页面信息);
}
}catch(IOException ex){}
}
私有静态void GetAllClass(路径文件,HtmlPageInfo pageInfo){
Pattern classPattern=Pattern.compile(“class=\”([-A-Za-z\*)\”);
Charset Charset=Charset.forName(“UTF8”);
BufferedReader reader=null;
试一试{
reader=Files.newBuffereder(文件,字符集);
字符串行=null;
而((line=reader.readLine())!=null){
Matcher classMatcher=classPattern.Matcher(行);
while(classMatcher.find()){
字符串classGroup=classMatcher.group(1);
for(字符串cls:classGroup.split(“”){
pageInfo.getClassList().add(cls);
}
}
}
}
捕获(IOX异常){
系统错误格式(“IOException:%s%n”,x);
}
最后{
if(读卡器!=null){
试一试{
reader.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
私有静态void getAllIds(路径文件,HtmlPageInfo){
Pattern idPattern=Pattern.compile(“id=\”([-A-Za-z\]*)\”);
Charset Charset=Charset.forName(“UTF8”);
BufferedReader reader=null;
试一试{
reader=Files.newBuffereder(文件,字符集);
字符串行=null;
而((line=reader.readLine())!=null){
匹配器idMatcher=idPattern.Matcher(行);
while(idMatcher.find()){
String id=idMatcher.group(1);
pageInfo.getIdList().add(id);
}
}
}
捕获(IOX异常){
系统错误格式(“IOException:%s%n”,x);
}
最后{
if(读卡器!=null){
试一试{
reader.close();
}捕获(IOE异常){
e、 printStackTrace();
}
}
}
}
}
类HtmlPageInfo{
私有字符串页面名;
私人名单上的游手好闲者;
私有列表类列表;
公共字符串getPageName(){
返回页面名;
}
public void setPageName(字符串pageName){
this.pageName=页面名;
}
公共列表getIdList(){
返回懒汉;
}
public void setIdList(列表idList){
this.idList=idList;
}
公共列表getClassList(){
返回类列表;
}
公共无效集合类列表(列表类列表){
this.classList=classList;
}
@凌驾
公共字符串toString(){
StringBuilder sb=新的StringBuilder();
sb.追加(“[第页-”);
某人附加(页面名称);
某人加上(“]”);
sb.追加(“\n\t[id-”);
sb.append(“+idList.size()+”)\n\t\t“;
for(字符串id:idList){
sb.追加(id+“,”);
}
sb.追加(“\n\t[类”);
sb.append(“+classList.size()+”)\n\t\t“;
for(字符串cls:classList){
sb.追加(cls+“,”);
}
sb.追加(“]\n\n”);
使某人返回字符串();
}
}
编写一个java类,该类将扫描文件夹中的html/jsp页面,然后使用正则表达式标识id和类的模式。你可以得到ID和类的逐页列表。@AbhashUpadhyaya我从来没有这样做过,你能给我一个简单的例子吗?