1

我有一种情况,底层应用程序提供了一个 UI 层,而这又必须呈现为一个 portlet。但是,我不希望最初呈现的 UI 的所有部分都在 Portlet 中呈现。

建议的解决方案:使用 Datapower 解析作为规范的 XML,我想知道是否可以解析 HTML。我了解 HTML 可能并不总是格式正确。但是如果底层应用程序中的 HTML 页面很少,那么可以强制执行合同。

此外,如果有人设法使用 DP 从 HTML 中解析和提取数据,那么结果(可能是 XML)可用于生成 HTML5 及其所有优点。

所以问题:使用 Datapower 解析 HTML 页面以从中提取 XML 是否可取?先决条件:每个应用程序的 HTML 页面数量可能会因数据而异,但不会因页面数量而异。

4

2 回答 2

0

我怀疑您将无法使用 DataPower 解析 HTML。DataPower 可以解析格式良好的 XML,但 HTML(除非它被明确设计为 xHTML)可能充满破坏格式良好的标签。

很多网页都充满了<br>or之类的标签<ul><li>Item1<li>Item2<li>Item3</ul>,所有这些都会导致解析失败。

如果您真的想遵循您建议的方法,您可能需要在更灵活的平台上做一些事情,例如 WAS,您可以在其中构建(或重用)一个为您处理所有这些的解析器。

如果您考虑一下,这就是您的 Web 浏览器所做的 - 它具有将格式错误的 XML 标记(即 HTML)转换为有效 DOM 结构的所有复杂规则。听起来您最好在 DOM 级别而不是 HTML 级别进行操作,因为这样您可以利用现有的、经过良好测试的解析解决方案并专注于数据的结构。您可以使用 JavaScript 在客户端执行此操作,也可以查看服务器端 JavaScript 选项,例如 Rhino 或 PhantomJS。

不过,所有这一切可能都是以艰难的方式做事。您是否已确认底层应用程序是否具有 IT 用于呈现页面的任何 API 或 Web 服务,从而允许您在现有表示层不妨碍的情况下获取数据?

干杯,克里斯

于 2014-03-31T02:04:48.690 回答
-1

当您想对其进行一些处理时,就会产生解析和 HTML 页面的问题。如果是这种情况,您可能会遇到问题,因为默认情况下 datapower 不允许在格式良好的 XML 或 HTML 文档中使用超链接 [这被认为是一种安全风险],但是可以通过现有 XML 管理器中的适当设置来克服这一点。

就 HTML 页面解析问题而言,Datapower 和 ESB 层有望提供消息格式转换,而且确实如此。因此,从设计角度来说,它是进行消息格式转换的好地方。但实际上,当您尝试将 HTML 解析为 XML 文档时,您将面临上述问题。

[理论上] 解析可以生成您希望的任何消息格式模型,因此您可以使用 XSLT 来实现您想要的。

  • 阿吉塔布
于 2013-12-06T13:06:51.437 回答