Apache Nifi中的多个GetHTML属性

时间:2017-09-06 08:26:50

标签: attributes apache-nifi

有没有办法在同一数据流中执行多个GetHTMLElement?我正在尝试首先执行GetHTMLElement(选择属性)和执行UpdateAttribute处理器之后的某些属性

(attrib: ${HTMLElement})

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

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

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

1 个答案:

答案 0 :(得分:0)

原因是GetHTMLElement可以将提取的元素放入流文件属性或流文件内容,具体取决于配置的{{1} } 适当的价值。 Destination有四个可以输出的关系

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

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

我提交了一个Jira NIFI-4356,通过在目标为 attribute 时将原始内容保留在生成的流文件中来改进对此案例的处理。