Solved

Printing html decoded value from xslt on webpage

Posted on 2012-04-10
10
372 Views
Last Modified: 2012-04-12
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
0
Comment
Question by:tia_kamakshi
  • 6
  • 4
10 Comments
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 37828903
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
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 37828906
I would make that for-each an apply-templates by the way
0
 

Author Comment

by:tia_kamakshi
ID: 37829081
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
Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

 
LVL 60

Expert Comment

by:Geert Bormans
ID: 37829318
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
 

Author Comment

by:tia_kamakshi
ID: 37829472
<LongDescription> node is printing on the html page but with no formatting

Please suggest
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 37830086
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
 

Author Comment

by:tia_kamakshi
ID: 37835816
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
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 500 total points
ID: 37836433
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
 

Author Closing Comment

by:tia_kamakshi
ID: 37838996
This was great.Many Many Thanks for your great help

Regards,
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 37839007
welcome
0

Featured Post

Networking for the Cloud Era

Join Microsoft and Riverbed for a discussion and demonstration of enhancements to SteelConnect:
-One-click orchestration and cloud connectivity in Azure environments
-Tight integration of SD-WAN and WAN optimization capabilities
-Scalability and resiliency equal to a data center

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How do i send an api key in a request header 3 84
Create XML 5 52
Configure a Bean in an XML file 4 42
Why is PHP Storm giving me an undefined constant error? 4 20
The Problem How to write an Xquery that works like a SQL outer join, providing placeholders for absent data on the outer side?  I give a bit more background at the end. The situation expressed as relational data Let’s work through this.  I’ve …
The Confluence of Individual Knowledge and the Collective Intelligence At this writing (summer 2013) the term API (http://dictionary.reference.com/browse/API?s=t) has made its way into the popular lexicon of the English language.  A few years ago, …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question