【问题标题】:Breaking long HTML lines while reading the source code阅读源代码时打断长 HTML 行
【发布时间】:2014-08-06 22:08:32
【问题描述】:

我正在提取Java中的HTML源代码

DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
HttpResponse response = client.execute(httpGet); 
if (response.getStatusLine().getStatusCode() == 200) 
{ 
sourcepage = EntityUtils.toString(response.getEntity(), "UTF-8"); 
} 
client.getConnectionManager().shutdown();

此代码是我的代码的基线,我将在 HTML 代码的每一行上执行不同的功能。但是,有些代码行太长了。例如,一行的长度是 49966,这会在运行代码时产生一些计算成本问题。我想知道是否有可能在阅读 HTML 源代码时打破 HTML 行 - 如果它的长度大于阈值?

这也是我逐行阅读代码的方式:

String[] each_line = sourcepage.split("\r?\n");    

【问题讨论】:

  • 你用什么编程语言做这个?
  • @Rowland Shaw 对不起,我忘了提。我正在使用 Java。
  • 请显示一些额外的代码,你是如何解析响应的?
  • @Nit 我修改了帖子。您可以在那里找到更多详细信息。谢谢
  • 为什么不简单地使用 HTML 解析器?

标签: java html


【解决方案1】:

这在一定程度上取决于您之后想要对 HTML 做什么。如果您只是想阅读它,那么您可以在每个以 /> 结尾的 HTML 元素之后添加一个换行符(即 content.replace("/>", "/>\n") 加上您可以对 </[^>]+> 进行正则表达式搜索,并在每次匹配后添加一个换行符。

这应该很好地破坏了 HTML。注意:通常,regexp 不是处理 HTML 的正确工具。但在这种特殊情况下,就足够了。

另一种选择是将JTidy 作为依赖项添加到您的代码中。它具有美化 HTML 的代码格式化程序。

【讨论】:

    猜你喜欢
    • 2014-07-08
    • 2010-09-23
    • 2019-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-09
    • 2013-05-16
    相关资源
    最近更新 更多