在 nifi 中从 xml respose 获取数据
Getting data from xml respose in 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()
但它无法在处理 EvaluateXpath 后在流文件中重新获取属性 ErrorCode( 中的错误代码数据ErrorCode 属性没有值,是空字符串)如何获取 ErrrorCode 的值?
要提取所需的值,请使用 XPath 表达式 //ErrorCode
。这将 return 一个 String
值 -7。通过选择 Destination
flowfile-attribute,您可以保持流文件内容不变并将这个新值放入流文件属性中(即命名为 attribute
)。
您可以将 matched
关系链接到具有表达式 ${attribute:toNumber()}
的 UpdateAttribute
处理器以将其转换为数字表示,即 ${attribute:toNumber():plus(10)}
将 return 3。
调用 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()
但它无法在处理 EvaluateXpath 后在流文件中重新获取属性 ErrorCode( 中的错误代码数据ErrorCode 属性没有值,是空字符串)如何获取 ErrrorCode 的值?
要提取所需的值,请使用 XPath 表达式 //ErrorCode
。这将 return 一个 String
值 -7。通过选择 Destination
flowfile-attribute,您可以保持流文件内容不变并将这个新值放入流文件属性中(即命名为 attribute
)。
您可以将 matched
关系链接到具有表达式 ${attribute:toNumber()}
的 UpdateAttribute
处理器以将其转换为数字表示,即 ${attribute:toNumber():plus(10)}
将 return 3。