sure, sorry, more complete example:
<dsc type="combined">
<c01
level="series"><did><unittitle><unitdate></unitdate></unittitle><physdesc></physdesc></did>
<arrangement.</arrangement><scopecontent><p></p></scopecontent>
<c02
level="subseries"><did><unittitle><unitdate></unitdate></unittitle><physdesc></physdesc></did>
<arrangement.</arrangement><scopecontent><p></p></scopecontent>
<c03
level="file"><did><unittitle><unitdate></unitdate></unittitle><physdesc></physdesc></did>
<arrangement.</arrangement><scopecontent><p></p></scopecontent></c03>
<c03><did><unittitle><unitdate></unitdate></unittitle><physdesc></physdesc></did>
<arrangement.</arrangement><scopecontent><p></p></scopecontent></c03></c02></c01></dsc>
again, I am trying to format scopecontent one way where @level="series" or
"subseries" and another where @level="file" or there is no attribute level.
thanks again,
lynn
Kamal Bhatt
<kbhatt(_at_)tt(_dot_)com(_dot_)au
> To
xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
02/05/2007 06:26 cc
PM
Subject
Re: [xsl] Writing conditional
Please respond to statement based on attribute
xsl-list(_at_)lists(_dot_)mu
lberrytech.com
llobash(_at_)nypl(_dot_)org wrote:
I am trying to write a conditional statement based on an attribute:
The XML doc will have either @level=series, subseries, file, item, or no
attribute.
I would like the output to be in <p> with default font where
@level="series" | @level="subseries"
and <font size="-1" color="gray"> where there is file, item or no level
attribute. In other words anything but series or subseries.
Here are two examples of XML:
scopecontent is the element i am trying to format. parent element is dsc.
<c01 level="series">
<did>
<container type="folder" label="Folder"> 15</container>
<unittitle><unitdate>1932</unitdate></unittitle>
</did>
<scopecontent>
<p> Includes letters regarding Lee Strasberg's health. </p>
</scopecontent>
<c04>
<did>
<container type="folder" label="Folder"> 15</container>
<unittitle><unitdate>1932</unitdate></unittitle>
</did>
<scopecontent>
<p> Includes letters regarding Lee Strasberg's health. </p>
</scopecontent>
</c04>
I tried the following with no luck:
<xsl:template match='dsc//scopecontent'>
<xsl:choose>
<xsl:when test='* [(_at_)level="series"] |
* [(_at_)level="subseries"]'>
<p>
<xsl:apply-templates/>
</p>
</xsl:when>
<xsl:otherwise>
<font size="-1" color="gray">
<xsl:apply-templates/>
</font>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
You match is saying find all scopecontent elements in dsc. Your if
statement is wrong on two counts (I think). Firstly, I think the syntax
is wrong, I think you mean 'node()[(_at_)level="series"] or node [(_at_)level =
"subseries"]' but this is incorrect as you are searching for @level in
scopecontent. You should be looking in c01, c04, etc...
Also:
<xsl:template match='* [(_at_)level="series"]//scopecontent |
* [(_at_)level="subseries"]//scopecontent'>
<p>
<xsl:apply-templates/>
</p>
</xsl:template>
<xsl:template match='* [not (@level="series")]//scopecontent |
* [not (@level="subseries")]//scopecontent'>
<font size="-1" color="gray">
<xsl:apply-templates/>
</font>
</xsl:template>
Thanks for the help.
Lynn
Can you give a more complete and correct example? From what you have
given us, you should not be matching on scopecontent first, but on c0x
where x is a number. We need to know more about these c0x elements. How
many are there, do they follow a pattern? are there any other sort of
elements in dsc? is there a b0x element?.
--
Kamal Bhatt
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--