xsl break word

i have 2 columns in a row.  Second column holds text. Text can be sentence or a single long word. IIf it is a single long word it tries to occupy first cell. I want the long word to break up and wrap.
please let me know if you have any suggestions.
mahalasaAsked:
Who is Participating?
 
Geert BormansInformation ArchitectCommented:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   version="1.0">
    <xsl:template match="/">
        <xsl:variable name="test-string">
            <xsl:text>thisisaverylongwordandmyhyphenatorchoquesonit</xsl:text>
        </xsl:variable>
        <block>
            <xsl:call-template name="add-zero-width">
                <xsl:with-param name="str" select="$test-string"/>
            </xsl:call-template>
        </block>
    </xsl:template>
    <xsl:template name="add-zero-width">
        <xsl:param name="str"/>
        <xsl:value-of select="substring($str, 1, 1)"/>
        <xsl:text>&#8203;</xsl:text>
        <xsl:if test="string-length($str) > 1">
            <xsl:call-template name="add-zero-width">
                <xsl:with-param name="str" select="substring($str, 2)"/>
            </xsl:call-template>
        </xsl:if>
    </xsl:template>
</xsl:stylesheet>

Open in new window

0
 
HainKurtSr. System AnalystCommented:
wrap the second one in "a long text here bla bla bla...."
0
 
mahalasaAuthor Commented:
i dint get u..pls elaborat
0
Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

 
Geert BormansInformation ArchitectCommented:
There is a multitude of options.
So I have a couple of questions for you:
- XSLT1 or XSLT2
- Which XSLT processor, can that change?
- How do you want to break, every n characters, is n a parameter, how do you intend to tell the size based on the cell width?
- HTML or PDF, or... have you considered CSS wrapping options such as word-wrap (IE only)
0
 
kmartin7Commented:
Is this XSL:FO?
0
 
mahalasaAuthor Commented:
basically pdf is generated. Yes i have tried word wrap no use.
0
 
mahalasaAuthor Commented:
yes xsl;block
0
 
mahalasaAuthor Commented:
any expert in xsl?
0
 
Geert BormansInformation ArchitectCommented:
If it is xsl:fo, and it is long words and you processor can't deal with hyphenation correctly, then I assume that the best alternative you have is adding a zerowidth space between each letter
easily done in XSLT2, some recursion in XSLT1.
Would that work for you?
I assume you have tried the wrap options of FO
0
 
mahalasaAuthor Commented:
i have seen that 24 characters can fit in without issues. i need to wrap text to next line for word greater than 24 characters.
0
 
mahalasaAuthor Commented:
wrap option works only for sentence.
0
 
Geert BormansInformation ArchitectCommented:
> any expert in xsl?

well, you have two here already?
Not enough?
Don't expect miracles if you ask half questions
0
 
mahalasaAuthor Commented:
how do we add zero width space?
0
 
mahalasaAuthor Commented:
:-)
0
 
Geert BormansInformation ArchitectCommented:
&#8203;
0
 
mahalasaAuthor Commented:
wat would this zero width space do?
0
 
Geert BormansInformation ArchitectCommented:
well, visually you would still have one word, so your FO processor will not show the character.
For the processor however the word is no longer a word, but a sequence of characters with spaces in between, so wrapping will work as you please
0
 
mahalasaAuthor Commented:
This seems like resolving my issue. can you give me an example to use it with code snippet.

Thank a lot :-)
0
 
kmartin7Commented:
Depending on FO processor, have you tried placing the text within each cell within a block, then use the 'wrap-option" attribute set to "wrap"?
0
 
mahalasaAuthor Commented:
yes, its already within a block :-(
0
 
Geert BormansInformation ArchitectCommented:
Which processor have you used?
Are you sure you have exposed the wrap options in the block?
0
 
mahalasaAuthor Commented:
i am not sure abt the processor :-( i am new to xsl . yes i have tried wrap option. my pdf work absolutely fine for long sentence with proper wrapping
0
 
mahalasaAuthor Commented:
can u give me a code snippet which uses zero width spacing
0
 
Geert BormansInformation ArchitectCommented:
there are two processors, one for XSLT and one for XSL:FO
It makes sense that you know both of the processor brands and possibilities
Processors have specific implementations, so it can bite you if you don't have a clue

I will assume you have XSLT1 for the zero width stuff
0
 
mahalasaAuthor Commented:
Hi Gertone, i need one more help
do u know abt itext?
0
 
mahalasaAuthor Commented:
any code snippet using it would be really helpful
0
 
mahalasaAuthor Commented:
Great response. I am really thankful.
0
 
Geert BormansInformation ArchitectCommented:
welcome
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.