Here is a solution I use to concatenate several XML elements in BRE without having to use static .Net classes. I used this method to avoid having to assert an instance of a .Net class. More in formation about about asserting .Net classes can be found here: http://msdn.microsoft.com/en-us/library/aa950269.aspx
This method simply embeds the XSLT CONCAT string function in the XPATH query. For example to concatenate 2 elements the following code would be used: concat(xpath to element 1, xpath to element 2).
In the sample message below, I am required to append the CorrelationID and JobNo values together and return the concatenated value as a vocabulary in BRE.
The XPATH statement to concatenate the two elements is shown below:
concat(/*[local-name()=’FaultEnvelope’]/*[local-name()=’CustomException’]/*[local-name()=’CorrelationID’],/*[local-name()=’FaultEnvelope’]/*[local-name()=’CustomException’]/*[local-name()=’JobNo’])
This produces the following output. However the only issue now is I require a space between the two values.
A space can be added by appending another concat statement in the xpath as shown.
Now that the XPATH statement is correctly structured, it can be added to the XPath field in Vocabulary Definition Wizard. Note the XPath selector field is required to be set to the root path “/”
In the past I have also used other XPATH functions inside the XPath field with great success.
Enjoy.