我想解析一个Html并将结果作为字符串。假设外部Html的Body包含另一个Html字符串,我希望该内部Html作为输出字符串。
示例>输入HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head></head><body><p><!DOCTYPE html><br /><html><br /><body><br /><br /><h1>My First Heading</h1><br /><br /><p>My first paragraph.</p><br /><br /></body><br /></html><br /><br /></p></body></html>
输出字符串:
<!DOCTYPE html><html><body><h1>My First Heading</h1><p>My first paragraph.</p></body></html>
重要提示:我使用的是一个HTML编辑器,如果我在其中输入了什么,它会在执行getText时返回该输入的HTML表示,上面的第一个HTML字符串只是该表示。
此外,输出字符串应该与我在此处运行第一个字符串时相同(http://www.w3schools.com/html/tryit.asp?filename=tryhtml_basic)
请帮我做这个。
我会使用一些正则表达式:
(<!DOCTYPE html>).*(<html>.*</html>).+
取第1组和第2组,
tst = tst.replaceAll("<", "<").replaceAll(">",">");
Pattern p = Pattern.compile("(<!DOCTYPE html>).*(<html>.*</html>).*</html>.*");
Matcher m = p.matcher(tst);
m.find();
System.out.println(m.group(1) + m.group(2));
示例运行:http://rextester.com/JTOJ89529