import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class HtmlIntegrityChecker {
private static final String MIN_HTML_VERSION = "<html>"; // Basic HTML tag for older versions
private static final String MIN_HTML_VERSION_WITH_HEAD = "<html"; // HTML tag with head for slightly later versions
private static final String MIN_HTML_VERSION_WITH_HEAD_AND_BODY = "<html body>"; // HTML tag with head and body for some older versions
public static boolean verifyHtmlIntegrity(String filePath) throws IOException {
// Check if the file exists
Path path = Paths.get(filePath);
if (!Files.exists(path)) {
System.err.println("File not found: " + filePath);
return false;
}
String htmlContent = new String(Files.readAllBytes(path));
//Check for minimal HTML structure
if (!htmlContent.contains(MIN_HTML_VERSION) && !htmlContent.contains(MIN_HTML_VERSION_WITH_HEAD) && !htmlContent.contains(MIN_HTML_VERSION_WITH_HEAD_AND_BODY)) {
System.err.println("HTML file appears to be invalid or too minimal.");
return false;
}
//Basic validation - Check for required tags
if (!htmlContent.contains("<head>") || !htmlContent.contains("<body>")) {
System.err.println("HTML file missing required head or body tags.");
return false;
}
return true;
}
public static void main(String[] args) {
// Example usage:
if (args.length != 1) {
System.out.println("Usage: java HtmlIntegrityChecker <html_file_path>");
return;
}
String filePath = args[0];
try {
boolean isValid = verifyHtmlIntegrity(filePath);
if (isValid) {
System.out.println("HTML file is valid.");
} else {
System.out.println("HTML file is invalid.");
}
} catch (IOException e) {
System.err.println("Error reading file: " + e.getMessage());
}
}
}
Add your comment