xsl-list
[Top] [All Lists]

RE: How to filter nodes on attribute values

2003-03-10 20:46:56
If you don't like my solution create separate templates for each type you
want of the form:

<xsl:template match="Annotation[(_at_)type='boring']">

which will give you more granular control over formatting.

Jeff


<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl='http://www.w3.org/1999/XSL/Transform' >
<xsl:output method="html"/>

<xsl:template match="/">
        <html>
                <style>
                        .interesting {color: red;}
                        .boring {color: green;}
                </style>
                <body>
                        <xsl:apply-templates/>
                </body>
        </html>
</xsl:template>

<xsl:template match="Annotation">
        <p class="{(_at_)type}">
                <br/>
                Author = <xsl:value-of select="book/author"/><br/>
                Title = <xsl:value-of select="book/title"/><br/>
        </p>
</xsl:template>

</xsl:stylesheet>


<?xml version="1.0"?>
<Annotations>
         <Annotation type="interesting">
            <book id="bk106">
              <author>Randall, Cynthia</author>
              <title>Lover Birds</title>
            </book>
        </Annotation>
        <Annotation type="boring">
           <book id="bk102">
              <author>Ralls, Kim</author>
              <title>Midnight Rain</title>
            </book>
        </Annotation>
        <Annotation type="indifferent">
           <book id="bk102">
              <author>Ledbetter, James</author>
                        <title>Starving to Death on $200 Million</title>
            </book>
        </Annotation>
</Annotations>


Hello,
I have another problem.

I wish to apply formatting on a set of nodes which have a certain value
in the attribute.
I mean -
<Annotation type="interesting">
   <book id="bk106">
     <author>Randall, Cynthia</author>
     <title>Lover Birds</title>
   </book>
</Annotation>
<Annotation type="boring">
  <book id="bk102">
     <author>Ralls, Kim</author>
     <title>Midnight Rain</title>
   </book>
</Annotation>
-------------------
So that I can show all nodes ANNOTATION with
type="interesting" with RED
colored font and
all nodes ANNOTAITON with type="boring" with GREEN colored font.
Could somebody please guide me how to do this.
I donot wish to use When or If because I have to use
apply-imports which
doesnot work with When and If.

Thanks in advance
Ankit


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list