2017-08-22 4 views
-1

Ich habe Antwort wie folgt aus:Extrahieren von Daten aus Antwort

<Result xmlns="olineservice" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<ResponseStatus>false</ResponseStatus> 
<Error> 
<ErrorCode>-7</ErrorCode> 
<ErrorDescription>data wasn't found</ErrorDescription> 
</Error> 
</Result> 

und ich will ErrorCode- Wert von Antwort Flowfile anc Kontrolle extrahieren, wenn es bis -7 gleich ist, und wenn es ist, werde ich dies anmelden . Ich habe versucht, dies in ExtractText Prozessor: ${flowfile.content}=(.*?)[a-zA-Z0] aber es ist nicht für mich arbeiten und trows ähnliche Ausnahme:

  1. was soll ich ändern Sie den Wert von Error-Code

enter image description here

+0

Von Triage: Sie sollten mindestens einen sehr spezifischen Titel – rakwaht

Antwort

3

zu erhalten Da Ihre Eingabe XML ist, finden Sie vielleicht EvaluateXPath oder EvaluateXQuery nützlicher. Für EvaluateXPath, versuchen Sie //ErrorCode als Pfad und es sollte -7 in ein Attribut oder den Inhalt extrahieren (abhängig von der Einstellung der Destination-Eigenschaft)

+0

Ich habe benutze EvaluateXPath mit der Nummer (// ErrorCode) und benutze dann den Execscript Prozessor um den Wert von ErrorCode zu erhalten und es dann in den Flowfile Namen zu setzen aber es ist immer noch Nan Kannst du mir etwas empfehlen um errorCode Nummer zu bekommen und es als FlowFile als Attribut zu schreiben? –

+0

Im Online-Parser funktioniert es Nummer (// ErrorCode) aber für EvaluateXpath Prozessor noch // Errorcode haben weder Nummer (// ErrorCode) noch ein entsprechendes Ergebnis –