微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 NIFI 中的 xml 文件中检索值

如何解决从 NIFI 中的 xml 文件中检索值

我正在尝试从 xml 文件获取 Id。然后使用每个 Id 进行另一次搜索

<eSearchResult>
<Count>45</Count>
<RetMax>20</RetMax>
<RetStart>0</RetStart>
<IdList>
<Id>33361791</Id>
<Id>33361786</Id>
<Id>32332909</Id>
<Id>32025009</Id>
<Id>31802014</Id>
<Id>31802012</Id>
<Id>31723292</Id>
<Id>31723289</Id>
<Id>31217606</Id>
<Id>30820044</Id>
<Id>30783288</Id>
<Id>30783284</Id>
<Id>30723345</Id>
<Id>30602740</Id>
<Id>30487615</Id>
<Id>30429559</Id>
<Id>30275559</Id>
<Id>30209371</Id>
<Id>30158703</Id>
<Id>29991780</Id>
</IdList>
</eSearchResult>

我使用 EvaluateXPath 处理器,添加一个自定义属性“id : //*/Id”。但我无法获得 ID。

如何检索这些 ID 并将它们中的每一个放入下一个处理器?

解决方法

@duolanierduone

您在这里寻找的解决方案将从 NiFi Record Readers 开始。对于您的用例 XML 阅读器。

使用 Record Reader,您可以读取数据 (xml) 和输出结果(您想要的 ID)和/或使用 Record Writer 转换为另一种数据类型(csv、json 等)。 ConvertRecord、QueryRecord 和 UpdateRecord 是这里的有用处理器。

如果您只想要 id,请尝试将 XML 发送到 QueryRecord(使用 XML Reader 配置),然后创建一个属性,例如 id 并将值设置为:

SELECT * FROM FLOWFILE [value matching argument]

这里有一些关于 queryRecord 的更多详细信息,其中包含类似查询的属性和 sql 的屏幕截图示例: https://community.cloudera.com/t5/Community-Articles/Running-SQL-on-FlowFiles-using-QueryRecord-Processor-Apache/ta-p/246671

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。