我想制作新的处理器,这将是GetFile和EvaluateXpath的重聚,我有几个主题:
以下是我用于从xml配置文件中获取属性的简单代码:
XPathExpression start = xpath.compile("//*[local-name()='start']");
XPathExpression startDate = xpath.compile("//*[local-name()='startDate']");
XPathExpression endDate = xpath.compile("//*[local-name()='endDate']");
XPathExpression runAs = xpath.compile("//*[local-name()='run']");
XPathExpression patch = xpath.compile("//*[local-name()='patch Information']");
Object resultStart = start.evaluate(doc, XPathConstants.STRING);
NodeList nodes = (NodeList) resultStart;
flowFile = session.putAttribute(flowFile, "start", String.valueOf(nodes.item(nodes.getLength()-1)));
Map attributes = getAttributesFromFile(filePath); if(attributes.size()> 0){ flowFile = session.putAllAttributes(flowFile,attributes); }
但它确实无法正常工作,我应该改变什么?
答案 0 :(得分:1)
回答here,我不相信这个用例需要自定义处理器开发。将GetHDFS
与保留源文件:true
设置一起使用以将文件保留在原始位置,并使用ExecuteXPath
和各种XPath值从中提取数据将内容转换为flowfile属性。您还可以使用ListHDFS
和FetchHDFS
的组合将XML文件保存在HDFS中,因为NiFi将维护它所看到的文件的状态。