Expand my Community achievements bar.

parse xml passed inside <ctx> for Transactional template

Avatar

Level 3

Hi All,

 

i am getting the below xml inside my ctx of rt event

<ctx>

                <userMessage>

                    <userData>

                        <abc.alpha.new.system.User>

                            <userType>Fixed</userType>

                            <userBackground>Regular</ userBackground>

                            <productBookingDate>2015-05-8</productBookingDate >

 

when I am using --->  rtEvent.ctx.userMessage.userData.abc.alpha.new.system.User.userBackground ----- i am getting empty value
even if I use rtEvent.ctx.userMessage.userData.("abc.alpha.new.system.User").userBackground i still get empty value

 

Kindly suggest how to parse this xml to retrieve the value of 'userBackground' 

Please

 

@Vipul_Raghav 

@_Manoj_Kumar_ 

@ShrawanSaxena 

8 Replies

Avatar

Community Advisor

Hi @bhaskarc1289447 

Can you try this ? :

 

var doc = DOMDocument.fromXMLString(
    '<?xml version="1.0" encoding="ISO-8859-1"?>' +
    rtEvent.ctx.toXMLString());

var userBackground = doc.root.getElements('userMessage')[0]
                  .getElements('userData')[0]
                  .getElements('abc.alpha.new.system.User')[0]
                  .getElements('userBackground')[0].textContent;

Cedric

 

Avatar

Administrator

Hi @bhaskarc1289447,

Was the given solution helpful to resolve your query or do you still need more help here? Do let us know.

Thanks!



Sukrity Wadhwa

Avatar

Level 3

Hi @Sukrity_Wadhwa 

 

we tried the solution but it did not work as 'DOMDocument' was not recognized inside transactional Template

Avatar

Administrator

Thanks for sharing this, @bhaskarc1289447. I will escalate it further among the Community experts.

 

Regards,

Sukrity

 



Sukrity Wadhwa

Avatar

Level 3

Hi @bhaskarc1289447 ,

 

The dot notation in the XML element causes the issue while parsing the XML.

 

Can you try this way by changing the payload: 

 

Instead of a dot use an underscore (abc_alpha_new_system_User) or CamelCase (abcAlphaNewSystemUser)

 

<ctx>

                <userMessage>

                    <userData>

                        <abc_alpha_new_system_User>

                            <userType>Fixed</userType>

                            <userBackground>Regular</ userBackground>

                            <productBookingDate>2015-05-8</productBookingDate >

 

And then try to access rtEvent.ctx.userMessage.userData.abc_alpha_new_system_User.userBackground.

 

Thanks,

Malarrajan Sundarraj.

Avatar

Employee Advisor

Hello @bhaskarc1289447 
Please try 

ctx.userMessage.userData['abc.alpha.new.system.User'].userBackground

Hope this helps!

Hi @Kishore_Padamata ,

 

Thank you for the reply. This solution also returns empty result.

Avatar

Administrator

Hi @bhaskarc1289447,

Were you able to resolve this query with the help of the given solutions or do you still need more help here? Do let us know. In case the given solutions were helpful, then kindly choose the one that helped you the most as the 'Correct Reply'.
Thanks!



Sukrity Wadhwa