Solved

Adding text pt; at the end of line-height

Posted on 2008-09-30
1
395 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

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

Question has a verified solution.

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

Suggested Solutions

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…
Introduction Since I wrote the original article about Handling Date and Time in PHP and MySQL (http://www.experts-exchange.com/articles/201/Handling-Date-and-Time-in-PHP-and-MySQL.html) several years ago, it seemed like now was a good time to updat…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.
Video by: Mark
This lesson goes over how to construct ordered and unordered lists and how to create hyperlinks.

770 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