DTMNodeList returns list containing single element ([A]) instead of just that element (A) in Apache Camel

Solution Verified - Updated -

Issue

  • We am using Apache Velocity template to format output from route.
  • We are able to access ${exchange.getProperty("CamelSplitIndex")} but not able to access
${exchange.properties.a} and
${exchange.getProperty("Description")} 
  • We are getting -- com.sun.org.apache.xml.internal.dtm.ref.DTMNodeList@456e2f instead of value of the property.

  • Here is part of the code:

<camel:convertBodyTo type="java.lang.String"></camel:convertBodyTo>
            <to uri="xslt:XSLT/TxtToXMLConversion.xslt"></to>
            <camel:setProperty propertyName="a">
                <xpath>//*[local-name()="a"]/text()</xpath>
            </camel:setProperty>
            <camel:setProperty propertyName="Description">
                <xpath>//*[local-name()="Description"]/text()</xpath>
            </camel:setProperty>
            <!-- <camel:setBody>
                <camel:simple>Record# ${property.CamelSplitIndex}|${property.a}|${property.Description}\r\n</camel:simple>
            </camel:setBody> -->
            <camel:log message="Fetching a... ${property.a}" loggingLevel="INFO" ></camel:log>
            <camel:log message="Fetching Desc... ${property.Description}" loggingLevel="INFO" ></camel:log>
            <camel:log message="Transformed body# ${body}" loggingLevel="INFO"></camel:log>

  • The XML file is as below,

<XML> <MessageType>1</MessageType> <ProcCode>FNTF</ProcCode> <a>0168</a> <Description> KSM0168 Different currency</Description> </XML>
  • Why does Camel return a list of Nodes rather than single values ? How can we return single values ?

Environment

  • Red Hat JBoss Fuse
    • 6.x
  • Apache Camel
  • camel-xpath component

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content