I am trying to form an html template with xslt where I need to parse values from a variable containing xml string. But not being able to do so. If I try to print the variable it's showing the whole xml string with <
and >
being replaced with <
and >
respectively , but is not being parsed with xpath when tried.
Below is my xml string looks like which I stored in a variable named "SpecificOrderDetails". If I try the expression
<xsl:value-of select="$SpecificOrderDetails/SPECIFICORDERDETAILS/text()"/>
it gives me null value as output
<SPECIFICORDERDETAILS><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Hard-wired Return Path</COMPONENTNAME><COMPONENTID>101401</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Platinum Included FBO Movies</COMPONENTNAME><COMPONENTID>101500</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>iQ Discount</COMPONENTNAME><COMPONENTID>101501</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Primary Discounts</COMPONENTNAME><COMPONENTID>101504</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>03 Foxtel iQ</COMPONENTNAME><COMPONENTID>101601</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>TV - 24 Month Contract</COMPONENTNAME><COMPONENTID>101714</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Standard Install - No Offer</COMPONENTNAME><COMPONENTID>101723</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>My Platinum Eligibility</COMPONENTNAME><COMPONENTID>101900</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Commitment Eligibility</COMPONENTNAME><COMPONENTID>101913</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Platinum Channels</COMPONENTNAME><COMPONENTID>990015</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>4</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Smartcard</COMPONENTNAME><COMPONENTID>101</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>4</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>iQ PDR - Satellite</COMPONENTNAME><COMPONENTID>201</COMPONENTID></ORDERROW></SPECIFICORDERDETAILS>
If I try to print the variable it shows the whole xml string as below
<tr>
<td class="headingSubText" style="font-size:13pt; padding:10px 0px 0px 15px"><SPECIFICORDERDETAILS><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Hard-wired Return Path</COMPONENTNAME><COMPONENTID>101401</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Platinum
Included FBO Movies</COMPONENTNAME><COMPONENTID>101500</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>iQ
Discount</COMPONENTNAME><COMPONENTID>101501</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Primary
Discounts</COMPONENTNAME><COMPONENTID>101504</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>03
Foxtel iQ</COMPONENTNAME><COMPONENTID>101601</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>TV
- 24 Month Contract</COMPONENTNAME><COMPONENTID>101714</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Standard
Install - No Offer</COMPONENTNAME><COMPONENTID>101723</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>My
Platinum Eligibility</COMPONENTNAME><COMPONENTID>101900</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Commitment
Eligibility</COMPONENTNAME><COMPONENTID>101913</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>1</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Platinum
Channels</COMPONENTNAME><COMPONENTID>990015</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>4</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>Smartcard</COMPONENTNAME><COMPONENTID>101</COMPONENTID></ORDERROW><ORDERROW><CATEGORY>4</CATEGORY><ACTION>0</ACTION><COMPONENTNAME>iQ
PDR - Satellite</COMPONENTNAME><COMPONENTID>201</COMPONENTID></ORDERROW></SPECIFICORDERDETAILS>
</td>
</tr>
Please help someone on how to parse the variable inside xslt . Let know if I was not clear enough. This would my first question ever asked on stackoverflow.
Got it working !
Used xmlns:saxon="http://saxon.sf.net/" extension for xslt2.0 and it works perfectly to parse the xml string in the variable like below.
<xsl:value-of select="saxon:parse($SpecificOrderDetails)/SPECIFICORDERDETAILS/ORDERROW[ACTION ='0']"/>
Thanks everyone for helping!