Solved

Adding text pt; at the end of line-height

Posted on 2008-09-30
1
392 Views
Last Modified: 2013-11-18
Hello Experts,

The input xml file contains below structure like...

<p outputclass="line-height: 1.5;text-align: right;"><ph outputclass="color: green;font-size: 9pt;"></ph><xref href="test.html#survey">test</xref><ph outputclass="font-size: 9pt;"><b></b></ph></p>
      <p>

xslt code for this....
<xsl:template match="p[not(parent::entry)][@outputclass]">
    <xsl:variable name="value" select="@outputclass"/>
    <xsl:variable name="margin" select="substring-before(substring-after($value,'margin-left:'),'in;')"/>
    <p>
      <xsl:copy-of select="@*[not(name() = 'class')][not(name() = 'outputclass')]"/>
      <xsl:attribute name="style">
        <xsl:choose>
          <xsl:when test="contains($value,'margin-left:')">
            <xsl:value-of select="number($margin)*96"/>
          </xsl:when>
          <xsl:otherwise>
            <xsl:value-of select="$value"/>  
          </xsl:otherwise>
        </xsl:choose>
      </xsl:attribute>
      <xsl:apply-templates/>
    </p>
  </xsl:template>

In the output which is like below...
<p style="line-height: 1.5;text-align: right;"> for this line i have to add line-height:1.5pt;
         <span style="color: green;font-size: 9pt;"></span>
         <a href="test.html#survey">Test</a>
         <span style="font-size: 9pt;">
            <b></b>
         </span>
      </p>

Can you please suggest what's needs to be updated in xslt code.
0
Comment
Question by:ShaileshShinde
1 Comment
 
LVL 60

Accepted Solution

by:
Geert Bormans earned 125 total points
Comment Utility
Here is what you need to do this.
I am not convinced of the usefullness though
Note that 1.5 lineheight means that it is 1.5 times the font-size, often around 12pt, so line-height would be 18pt
a line-height of 1.5pt is very small
But anyway, I did what you asked for
    <xsl:template match="p[not(parent::entry)][@outputclass]">

        <xsl:variable name="value" select="@outputclass"/>

        <xsl:variable name="changed-value">

            <xsl:analyze-string select="$value" regex="^(.*)(line\-height:\s*[\d\.]+)(pt)?(.*)$">

                <xsl:matching-substring>

                    <xsl:value-of select="regex-group(1)"></xsl:value-of>

                    <xsl:value-of select="regex-group(2)"></xsl:value-of>

                    <xsl:text>pt</xsl:text>

                    <xsl:value-of select="regex-group(4)"></xsl:value-of>

                </xsl:matching-substring>

                <xsl:non-matching-substring>

                    <xsl:value-of select="."></xsl:value-of>

                </xsl:non-matching-substring>

            </xsl:analyze-string>

        </xsl:variable>

        <xsl:variable name="margin" select="substring-before(substring-after($changed-value,'margin-left:'),'in;')"/>

        <p>

            <xsl:copy-of select="@*[not(name() = 'class')][not(name() = 'outputclass')]"/>

            <xsl:attribute name="style">

                <xsl:choose>

                    <xsl:when test="contains($changed-value,'margin-left:')">

                        <xsl:value-of select="number($margin)*96"/>

                    </xsl:when>

                    <xsl:otherwise>

                        <xsl:value-of select="$changed-value"/>  

                    </xsl:otherwise>

                </xsl:choose>

            </xsl:attribute>

            <xsl:apply-templates/>

        </p>

    </xsl:template>

Open in new window

0

Featured Post

How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

Join & Write a Comment

Preface In the first article: A Better Website Login System (http://www.experts-exchange.com/A_2902.html) I introduced the EE Collaborative Login System and its intended purpose. In this article I will discuss some of the design consideratio…
This article covers the basics of the Sass, which is a CSS extension language. You will learn about variables, mixins, and nesting.
The viewer will learn how to count occurrences of each item in an array.
The viewer will learn how to create a basic form using some HTML5 and PHP for later processing. Set up your basic HTML file. Open your form tag and set the method and action attributes.: (CODE) Set up your first few inputs one for the name and …

744 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

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now