Subject: RE: Complex Match Pattern
From: "Dion Houston" <dionh@xxxxxxxxxxxxx>
Date: Wed, 1 May 2002 14:02:36 -0700
|
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@xxxxxxxxxxxxx]
Sent: Wednesday, May 01, 2002 1:36 PM
To: XSLT List (E-mail)
Subject: 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
|