使用扫描仪在java中分离html的元素和标签

时间:2013-01-26 19:04:59

标签: java html html-parsing java.util.scanner

我是编程新手,刚开始学习java。我想尝试打开一个HTML文件,并将每个标签的tag-tag和内容分开。

我刚学会了如何使用Scanner进行扫描,然后检查hasNext(),但我发现它只检查空格。

Scanner input = new Scanner (new FileReader("simple.html"));
while (input.hasNext())
{   
String content = input.next().toString();
System.out.println(content);
}

问题是......

//INPUT
<html><head><title>Hello</title></head>
<body>
<table border=1>
Hello World!
</table>
</body>
</html>

//DESIRED OUTPUT
<html>
<head>
<title>
Hello
</title>
</head>
<body>
<table border=1>
Hello
World!
</table>
</body>
</html>

//WHAT MY CODE OUTPUTS
<html><head><title>Hello</title></head>
<body>
<table
border=1>
Hello
World!
</table>
</body>
</html

任何人都可以帮助我吗?我被卡住了。 将逐步指导分步指南。

我见过一些自动化的第三方程序,但我想学习“编码方式”。因为我正在尝试自学编程,特别是Java ......

非常感谢你! :)

1 个答案:

答案 0 :(得分:1)

扫描仪不是您的工具,因为“”是单独的令牌。

您需要逐个字符地扫描输入,如果您在标签内部,则需要使用标记。类似的东西(伪代码)

if char is > flag off
if char is < flag on
if char is whitespace and not flag than print ENDLINE
else if char is (ENDLINE or whitespace) and flag print whitespace
else print char

现在您可以通过伪代码制作Java来学习。