XSLT Transformer in Mule




XSLT Transformer in Mule

It transform XML using XSLT(eXtensible Stylesheet Language Transformations).

flow of XSLT transformer  :




XSLT transformer configurations :



demo.xslt :

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output method="xml"/>
<xsl:template match="/">
<rentalProperties>
<property>
<xsl:attribute name="contact"><xsl:value-of select="rentalProperties/property/@contact"/></xsl:attribute>
<type><xsl:value-of select="rentalProperties/property/type"/></type>
<price><xsl:value-of select="rentalProperties/property/price"/></price>
<numberOfBedrooms><xsl:value-of select="rentalProperties/property/numberOfBedrooms"/></numberOfBedrooms>
<numberOfBathrooms><xsl:value-of select="rentalProperties/property/numberOfBathrooms"/></numberOfBathrooms>
<garage><xsl:value-of select="rentalProperties/property/garage"/></garage>
</property>
</rentalProperties>
</xsl:template>
</xsl:stylesheet>

URL :  http://localhost:8085/api/xslt
Method : POST

Input : 

<rentalProperties> <property contact='1'> <type>House</type> <price>200000</price> <address> <streetNo>768</streetNo> <street>Viman Nagar</street> <suburb>Pune</suburb> <state>Maharashtra</state> <zipcode>411022</zipcode> </address> <numberOfBedrooms>3</numberOfBedrooms> <numberOfBathrooms>1</numberOfBathrooms> <garage>1</garage> </property> </rentalProperties>


Output :




XML project code :



<?xml version="1.0" encoding="UTF-8"?> <mule xmlns:tracking="http://www.mulesoft.org/schema/mule/ee/tracking" xmlns:http="http://www.mulesoft.org/schema/mule/http" xmlns:doc="http://www.mulesoft.org/schema/mule/documentation" xmlns="http://www.mulesoft.org/schema/mule/core" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mule="http://www.mulesoft.org/schema/mule/core" xmlns:mulexml="http://www.mulesoft.org/schema/mule/xml" xmlns:vm="http://www.mulesoft.org/schema/mule/vm" xmlns:stdio="http://www.mulesoft.org/schema/mule/stdio" xmlns:spring="http://www.springframework.org/schema/beans" xsi:schemaLocation="http://www.mulesoft.org/schema/mule/core http://www.mulesoft.org/schema/mule/core/current/mule.xsd http://www.mulesoft.org/schema/mule/vm http://www.mulesoft.org/schema/mule/vm/current/mule-vm.xsd http://www.mulesoft.org/schema/mule/stdio http://www.mulesoft.org/schema/mule/stdio/current/mule-stdio.xsd http://www.mulesoft.org/schema/mule/xml http://www.mulesoft.org/schema/mule/xml/current/mule-xml.xsd http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-current.xsd http://www.mulesoft.org/schema/mule/http http://www.mulesoft.org/schema/mule/http/current/mule-http.xsd http://www.mulesoft.org/schema/mule/ee/tracking http://www.mulesoft.org/schema/mule/ee/tracking/current/mule-tracking-ee.xsd"> <http:listener-config name="HTTP_Listener_Configuration" host="0.0.0.0" port="8085" basePath="/api" doc:name="HTTP Listener Configuration"/> <flow name="xsltFlow"> <http:listener config-ref="HTTP_Listener_Configuration" path="/xslt" doc:name="HTTP"/> <object-to-string-transformer doc:name="Object to String"/> <mulexml:xslt-transformer maxIdleTransformers="2" maxActiveTransformers="5" doc:name="XSLT" xsl-file="src\main\resources\demo.xslt"/> <echo-component doc:name="Echo"/> </flow> </mule>