Solved

Adding text pt; at the end of line-height

Posted on 2008-09-30
1
393 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
ID: 22612530
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Shoutout to Emily Plummer (http://www.experts-exchange.com/members/eplummer26.html) for giving me this article! She did most of it, I just finished it up and posted it for her :)    Introduction In a previous article (http://www.experts-exchang…
Browsers only know CSS so your awesome SASS code needs to be translated into normal CSS. Here I'll try to explain what you should aim for in order to take full advantage of SASS.
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

896 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

14 Experts available now in Live!

Get 1:1 Help Now