Printing html decoded value from xslt on webpage

Hi Experts,

My xml node <LongDescription> has html endoded string like below

<LongDescription>&lt;p&gt;&lt;strong&gt;Location:&lt;/strong&gt; Beverly Hills.&lt;/p&gt;
        &lt;p&gt;The Beverly Wilshire is at one of the world’s most famous intersections – Rodeo Drive and Wilshire Boulevard, with its exclusive shops, galleries and restaurants. The property features luxuriously appointed rooms, award-winning restaurants and lively entertainment. Many of the hotel’s guest rooms have spectacular views of Rodeo Drive, the Hollywood Hills and the L.A. skyline. Los Angeles International Airport is 29 kilometres away.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Facilities:&lt;/strong&gt; 395 rooms and suites. Two restaurants, bar, 24-hour room service, shop, hairdresser, beauty salon, safety deposit boxes, business centre, babysitting, interconnecting and non-smoking rooms.
&lt;br/&gt;
                &lt;br/&gt;
                &lt;strong&gt;Superior Rooms:&lt;/strong&gt; Air-conditioning, TV, CD, data ports, minibar and safe.
&lt;br/&gt;
                &lt;br/&gt;
                &lt;strong&gt;Sports and leisure:&lt;/strong&gt; Outdoor pool, fitness centre, spa, sauna, jacuzzi, steam bath and massage.&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Check-in:&lt;/strong&gt; 1500 hours&lt;/p&gt;
        &lt;p&gt;&lt;strong&gt;Check-out:&lt;/strong&gt; 1200 hours.
&lt;br/&gt;&lt;/p&gt;</LongDescription>


When I am reading the text from xslt like below

<xsl:value-of select ="LongDescription" disable-output-escaping="yes" />

All html formating is not printing in the web page

Please can you help, so that format of the html in node <LongDescription> prints as is on web page

Please find attached my xml and xslt file

Please guide

Thanks
dcp248933-436029.xml
HotelListDynamic.xsl
tia_kamakshiAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Gertone (Geert Bormans)Information ArchitectCommented:
which html formatting are you missing?
and how do you view this?

If I run your XSLT against your XML (after correcting the obvious conbtext issue in the for-each)
I get exactly what I need... the layouted description

Or is it the context issue that is the problem?
In the for each you need to strip the path up to the level on the root element
line 13 should read
      <xsl:for-each select="Result/XmlContent">
if the XML you sent really is teh source
0
Gertone (Geert Bormans)Information ArchitectCommented:
I would make that for-each an apply-templates by the way
0
tia_kamakshiAuthor Commented:
Thanks Gertone for your reply.

My I am not seeing formatting on my web page... I am loosing all formatting done.

I have provided you the actual xml and xslt

What can be the reason that I am loosing my formatting in my html?

Please guide

Thanks again
0
Rowby Goren Makes an Impact on Screen and Online

Learn about longtime user Rowby Goren and his great contributions to the site. We explore his method for posing questions that are likely to yield a solution, and take a look at how his career transformed from a Hollywood writer to a website entrepreneur.

Gertone (Geert Bormans)Information ArchitectCommented:
How do you view the results and how do you run the XSLT?

If this is the actual XML and XSLT you need to change the context in teh for-each as I indicated
0
tia_kamakshiAuthor Commented:
<LongDescription> node is printing on the html page but with no formatting

Please suggest
0
Gertone (Geert Bormans)Information ArchitectCommented:
again, how do you execute the XSLT and how do you view the results?

This is important information.
If for instance you are running this in FireFox or using the TransformiX XSLT processor,
this will not work simply because there is no support for disable-output-escaping there
d-o-e is not mandatory and some processors simply don't support it (and claim they never will)
In that particular case, you need to preprocess the lot to make it XML nodes instead of a text node prior to the XSLT
(and hope the html is wellformed XML)

so please tell me how you execute the XSLT and how you view the result
0
tia_kamakshiAuthor Commented:
Hi Gertone,

I applogise, Node <LongDescription> is written in xml file as below:

------------------------------------------------------------
<LongDescription>
<p>
<strong>Location:</strong> Beverly Hills1.</p>
<p>The Beverly Wilshire is at one of the world’s most famous intersections – Rodeo Drive and Wilshire Boulevard, with its exclusive shops, galleries and restaurants. The property features luxuriously appointed rooms, award-winning restaurants and lively entertainment. Many of the hotel’s guest rooms have spectacular views of Rodeo Drive, the Hollywood Hills and the L.A. skyline. Los Angeles International Airport is 29 kilometres away.</p>
<p>
<strong>Facilities:</strong> 395 rooms and suites. Two restaurants, bar, 24-hour room service, shop, hairdresser, beauty salon, safety deposit boxes, business centre, babysitting, interconnecting and non-smoking rooms.
<br></br>
<br></br>
<strong>Superior Rooms:</strong> Air-conditioning, TV, CD, data ports, minibar and safe.
<br></br>
<br></br>
<strong>Sports and leisure:</strong> Outdoor pool, fitness centre, spa, sauna, jacuzzi, steam bath and massage.</p>
<p>
<strong>Check-in:</strong> 1500 hours</p>
<p>
<strong>Check-out:</strong> 1200 hours.
<br></br>
</p>
</LongDescription>
------------------------------------------------------------

Please find correct xml attached.

In correct xslt, for-each loop is written as
<xsl:for-each select="Result/XmlContent">

In my webpage, html of long description is loosing html formatting, done in node
<LongDescription>

Please advice

Many Thanks again
dcp248933-436029.xml
HotelListDynamic.xsl
0
Gertone (Geert Bormans)Information ArchitectCommented:
OK, this is a much better approach to control the html content in any case

by using value-of you just flatten out the text nodes
you need to procvess the children
I suggest we do that ion a special mode to not interfere with the other processing

change the value of into
                  <xsl:apply-templates select="LongDescription/node()" mode="preserve-html"/>  

and add a template

  <xsl:template match="node()" mode="preserve-html">
    <xsl:copy>
      <xsl:copy-of select="@*"/>
      <xsl:apply-templates select="node()" mode="preserve-html"/>
    </xsl:copy>
  </xsl:template>

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
tia_kamakshiAuthor Commented:
This was great.Many Many Thanks for your great help

Regards,
0
Gertone (Geert Bormans)Information ArchitectCommented:
welcome
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
XML

From novice to tech pro — start learning today.