2017-11-28 2 views
0

Ich möchte Tag-Namen von XML-Antwort erhalten und diese Daten in Flowfile1, aber für alle Kind Knotenname muss ich meine Antwortdaten in XML-Dokument konvertieren, aber ich bekomme Fehler auf getChildren().XML-Tag-Namen erhalten?

ist hier mein Code:

import org.apache.commons.io.IOUtils 
import java.nio.charset.StandardCharsets 


def flowFile=session.get(); 
def flowFile1=session.create(); 
def tagList=""; 
session.read(flowFile, {inputStream -> 
    text = IOUtils.toString(inputStream, StandardCharsets.UTF_8) 
} as InputStreamCallback) 
def xml=new XmlParser().parseText(text) 
xml=xml as Document; 
for tag in xml.findChildren(){ 
    tagList+=tag+ "\n"; 
} 
flowFile1=session.putAttribute(flowFile1,"filename","tagList"); 
flowFile1 = session.write(flowFile1, {outputStream -> 
    outputStream.write(tagList.getBytes(StandardCharsets.UTF_8)) 
    } as OutputStreamCallback) 


session.transfer(flowFile1,REL_SUCCESS); 
session.remove(flowFile); 

Hier ist ein Beispiel für die XML-Antwort:

<responseDate> 
    <person> 
     <name> 
     </name> 
     <id> 
     </id> 
    </person> 
</responseDate> 

Und in flowfile1 Ich möchte wie diese Daten schreiben:

responseData 
person 
name 
id 

Antwort

1

Ich hoffe, dies wird dir helfen .

def xml = new XmlParser().parseText(text) 
xml.'**'.each { 
println it.name() 
}