Splitting a message and renaming the sub-messages according to contained information
This scenario applies only to Talend ESB, Talend Data Services Platform, Talend MDM Platform, Talend Real-Time Big Data Platform, and Talend Data Fabric.
In this scenario, a file message containing people information is split into sub-messages. Each sub-messages is renamed according the city name it contains, and then routed to another endpoint.
The following is the example XML file used in this use case:
<people>
<person>
<firstName>Pierre</firstName>
<lastName>Dubois</lastName>
<city>Paris</city>
</person>
<person>
<firstName>Nicolas</firstName>
<lastName>Yang</lastName>
<city>Beijing</city>
</person>
<person>
<firstName>Ellen</firstName>
<lastName>Ripley</lastName>
<city>Washington</city>
</person>
</people>
A predefined JavaBean, setFileNames, is called by the cSetHeader component used in this use case to define a file name for each message according to the city name it contains. For more information about creating and using JavaBeans, see Using Beans.
package beans;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class setFileNames {
public String getCityName(Document document) {
NodeList cities = document.getDocumentElement().getElementsByTagName(
"city");
Element city = (Element) cities.item(0);
String textContent = city.getTextContent();
return textContent+".xml";
}
}