从xml获取数据可以在nifi中使用

时间:2017-08-23 12:11:24

标签: xml apache-nifi

在判断invokehttp处理器后,我得到了响应数据:

<Response xmlns="">
<Result>
<ResponseStatus>false</ResponseStatus>
<Error>
<ErrorCode>-7</ErrorCode>
<ErrorDescription>not foudn</ErrorDescription>
</Error>
</Result>
</Response>

我需要ErrorCode(-7)的值所以我添加了带有属性ErrorCode的EvaluateXpath处理器我使用了命令//Error/ErrorCode/text()但是它无法重新处理属性ErrorCode中的错误代码数据(在处理EvaluateXpath ErrorCode属性后的流文件中)没有值,是空字符串)我怎样才能得到ErrrorCode的值?

1 个答案:

答案 0 :(得分:1)

要提取所需的值,请使用XPath表达式 jQuery(document).ready(function ($) { $.getJSON('../wp-content/plugins/loopden/json/map.json', function (eventsData) { // Grabbing our JSON file to mark the map. Object.size = function(obj) { var size = 0, key; for (key in obj) { if (obj.hasOwnProperty(key)) size++; } return size; }; // Get the size of an object var eventsSize = Object.size(eventsData); console.log(eventsSize); console.log(eventsData[0].lat); for (var i = 0, l=eventsSize; i <l; i++){ var lat = eventsData[i].lat; var lng = eventsData[i].lng; var marker = new google.maps.Marker({ position: new google.maps.LatLng(parseFloat(lat), parseFloat(lng)), map: map, title: eventsData[i].title }); } }); }); 。这将返回//ErrorCode -7 。通过选择String flowfile-attribute ,可以使流文件内容保持不变,并将此新值放在flowfile属性中(即名为Destination)。

Configuration of EvaluateXPath

您可以将attribute关系链接到具有matched表达式的UpdateAttribute处理器,将其转换为数字表示,即${attribute:toNumber()}将返回 3 即可。

Output of LogAttribute