Apache Nifi 中的多个 GetHTML 属性

Multiple GetHTML Attributes in Apache Nifi

有没有办法在同一数据流中执行多个 GetHTMLElement?我试图首先执行 GetHTMLElement (选择属性)并在执行 UpdateAttribute 处理器

之后抓取一些属性
(attrib: ${HTMLElement})

第一部分运行良好,但是当我尝试执行第二部分时 GetHTMLElement,它无法从 flowContent 中解析任何内容...

我以两种不同的方式执行它们并将它们与 MergeContent 合并并工作...但现在我需要以不同的方式执行 2 "Gets"流程的一部分(拆分后)和合并将不起作用...

感谢您的帮助...我已经尝试在 Hortonworks 社区中提问 (https://community.hortonworks.com/questions/131614/multiple-gethtmlelement.html)

原因是GetHTMLElement可以将提取的元素放入流文件属性或流文件内容取决于配置的 Destination 属性 值。 GetHTMLElement 有四个 关系 可以输出:

  • 找不到元素 - 在 HTML 文档中找不到元素。原始 HTML 输入将保留在 FlowFile 内容中不变。在这种情况下将不会调用关系 'original'。
  • 成功 - 成功解析HTML元素
  • 原始 - 原始HTML输入
  • 无效html - 输入HTML语法无效

成功关系中,生成的流文件将包含提取元素的内容,或者如果元素被放入属性中,无内容。这是因为元素匹配的方式(参见 GetHTMLElement#186)。您可以将 original 关系路由到第二个 GetHTMLElement 处理器以提取元素,但正如您所描述的,您将拥有两个独特的流文件,每个流文件都有一个元素。

我提交了一个 Jira NIFI-4356 来改进这种情况的处理,方法是当目标是 属性 时,将原始内容保留在生成的流文件中。