【发布时间】:2011-06-23 17:37:33
【问题描述】:
我的系统(我正在使用 JSP)处理网络上的现有网站。我的应用程序应该能够显示该网站的页面并进行一些更改,例如突出显示某些单词。
所以我的程序要做的是从该网站获取页面并突出显示一些特定的单词,然后再次向我的系统用户显示带有突出显示的单词的页面。
如何使用 java 做到这一点?
【问题讨论】:
我的系统(我正在使用 JSP)处理网络上的现有网站。我的应用程序应该能够显示该网站的页面并进行一些更改,例如突出显示某些单词。
所以我的程序要做的是从该网站获取页面并突出显示一些特定的单词,然后再次向我的系统用户显示带有突出显示的单词的页面。
如何使用 java 做到这一点?
【问题讨论】:
您可以使用Tika 来获取 HTML 内容(或任何其他工具,如果您已经在使用某些东西)。
然后使用<span/> 突出显示需要突出显示并呈现页面的文本。
考虑不同的标记很重要。
此外,更简单的解决方案是使用 javascript(具体为 jquery),这将使整个过程变得更加简单。 jQuery library
【讨论】:
我会保存 XPath 或其他所需 DOM 节点的标识,并将其用于一些可由 Java 注入的 JavaScript 代码的参数化,为什么不呢。
或者你可以在你的词周围注入 span 标签,给它们一些 id 并为这些 id 注入 CSS。这需要一些常规表达式,不需要库。
【讨论】:
您显然是在尝试在原始页面和被操纵页面之间构建过滤器。因此,在您的 JSP 中,您将原始页面作为文本读取。如果它在您自己的服务器上,您可以打开文件并阅读它。或者您可能需要创建一个 Socket 以通过 Internet 读取它。无论哪种方式,您都可以将其作为文本阅读,插入您需要的任何附加标记,然后将此标记版本编写为 JSP 的输出。然后,您的 JSP 本身将没有实际内容,所有输出都将在 中使用 out.println 语句生成。 (JSP 在这里不是最自然的选择,您可能想研究 servlet,但无论如何。没有实际文本的 JSP 本身并没有错。)
【讨论】: