This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: Complex Match Pattern
- From: "Dion Houston" <dionh at microsoft dot com>
- To: <xsl-list at lists dot mulberrytech dot com>
- Date: Wed, 1 May 2002 14:02:36 -0700
- Subject: RE: [xsl] Complex Match Pattern
- Reply-to: xsl-list at lists dot mulberrytech dot com
Well, that kind of thing absolutely screams for a template :)
<xsl:template match="Difference[Change[not(contains(.,"NULL")) and
not(contains(.,"NONE"))]">
<output/>
</xsl:template>
This template (assuming I didn't mistype anything) will match only if
there is a Change element that contains neither NULL nor NONE. If there
is, then output it. If there are none, nothing gets outputted.
HTH!
Dion
-----Original Message-----
From: Dung, Ming-tzung [mailto:Ming-tzung_Dung@jdedwards.com]
Sent: Wednesday, May 01, 2002 1:36 PM
To: XSLT List (E-mail)
Subject: [xsl] Complex Match Pattern
The problem I have is about filtering and printing problem.
**Input XML:
<Difference>
<Object> A </Object>
<Change> change1 </Change>
<Chnage> change 2 </Change>
.....
</Difference>
The requirement is to output the Object content and the "meaningful"
change content. The "meaningful" change means the content won't contain
certain value, such as "NULL" or "NONE".
The challenges is that if there are no any meaningful change, don't
output
anything.
Originally, I though that I can use the following code to solve the
problem
<xsl:for-each select="Difference[not(contains(Change, 'NULL]') or
contains(Change, 'NONE']'))]>
<xsl:if test="position()=1">
<!-- output the Object content -->
</xsl:if>
<!-- output the Change content -->
</xsl:for-each>
BUT because the Change could have multiple lines, this design won't
work.
Any suggestion?
Thanks in advance!!
Ming-tzung Dung
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list