[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Jan,
Try this:
<xsl:template match="nl">
<xsl:if test="normalize-space(following-sibling::node()[1][self::text()]))">
{\par }
</xsl:if>
</xsl:template>
What it does: it selects the node directly following the nl (following-sibling::node()[1]), checks if it's a text node [self::text()], and normalizes its space (collapses internal white space and trims leading and trailing space). If anything is left, we know the nl is followed directly by some text, so we generate the {\par }.
It may require adjusting if your data is a bit different.
It's not really deleting duplicate elements; rather it's a more straightforward approach (only acting on them if we want them).
As for your English, I found two extremely minor errors in it. My posts often contain more than this! good job.
At 11:59 AM 4/15/2003, you wrote:
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Re: [xsl] Deleting Duplicate Elements
Subject: Re: [xsl] Deleting Duplicate Elements From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx> Date: Tue, 15 Apr 2003 12:26:59 -0400 |
Jan,
Try this:
<xsl:template match="nl">
<xsl:if test="normalize-space(following-sibling::node()[1][self::text()]))">
{\par }
</xsl:if>
</xsl:template>
What it does: it selects the node directly following the nl (following-sibling::node()[1]), checks if it's a text node [self::text()], and normalizes its space (collapses internal white space and trims leading and trailing space). If anything is left, we know the nl is followed directly by some text, so we generate the {\par }.
It may require adjusting if your data is a bit different.
It's not really deleting duplicate elements; rather it's a more straightforward approach (only acting on them if we want them).
As for your English, I found two extremely minor errors in it. My posts often contain more than this! good job.
Cheers, Wendell
At 11:59 AM 4/15/2003, you wrote:
Hello everybody,
i need your help. i am using XSL to transform XML document into RTF file.
i have this source tree from other company:
<book> <name> Text text text text <nl/> <nl/> Text text text text <nl/> <nl/> Text text text text <nl/> <nl/> <name> </book>
element <nl> is : "new line"
XSL for element <name> and <nl> is:
<xsl:template match="name"> {\par }{\qc \sa200\fs20\li500 {\b <xsl:apply-templates/>} </xsl:template>
<xsl:template match="nl"> {\par } </xsl:template>
Result tree is :
{\par }{\qc \sa200\fs20\li500 {\b Text text text text } {\par } {\par } \par }{\qc \sa200\fs20\li500 {\b Text text text text } {\par } {\par } \par }{\qc \sa200\fs20\li500 {\b Text text text text } {\par } {\par }
but i need only one tag {\par }. How can i do it? How can i replace two <nl><nl> by one <nl>?
thanks and sorry for my English
Jan Zavoral Czech Republic
====================================================================== Wendell Piez mailto:wapiez@xxxxxxxxxxxxxxxx Mulberry Technologies, Inc. http://www.mulberrytech.com 17 West Jefferson Street Direct Phone: 301/315-9635 Suite 207 Phone: 301/315-9631 Rockville, MD 20850 Fax: 301/315-8285 ---------------------------------------------------------------------- Mulberry Technologies: A Consultancy Specializing in SGML and XML ======================================================================
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Deleting Duplicate Elements, Jan Zavoral | Thread | RE: [xsl] Deleting Duplicate Elemen, Jan Zavoral |
RE: [xsl] why doesn't 'self::NODE' , Wendell Piez | Date | RE: [xsl] why doesn't 'self::NODE' , Wright, Steve |
Month |